Data/머신러닝 & 딥러닝 21

심층 신경망 성능 향상시키기(2)/ 편향, 분산

부스트 코스의 딥러닝 2단계: 심층 신경망 성능 향상시키기 강의를 수강하며 내용정리한 포스팅입니다. ▶ 편향(bias)/ 분산(variance) train set와 dev set의 성능에 대해 high bias라고 하면 훈련데이터 셋에 과소적합되어 훈련 데이터에서 조차도 모델의 성능이 나오지 않는다고 이해할 수 있다. 반면 high variance를 가진다고 하면 훈련 데이터에 과적합되어 훈련데이터에선 좋은 성능을 보이지만 개발 데이터 셋에선 좋은 성능을 보이지 않는다고 이해할 수 있다. 따라서 좋은 모델 성능을 내기 위해선 bias와 variance 두 요소를 모두 낮추는 것이 최상의 방법이나, 두 요소를 동시에 낮출 수 없는 상황이라면 감소폭이 더 큰 하나의 요소만이라도 낮추는 것이 성능에 긍정적인 ..

심층 신경망 성능 향상시키기(1) / Train, Dev, Test sets

부스트 코스의 딥러닝 2단계: 심층 신경망 성능 향상시키기 강의를 수강하며 내용정리한 포스팅입니다. ▶ Train/ Dev/ Test sets의 역할과 데이터 분할 train, dev, test 셋을 정하는 것은 알고리즘의 편향과 분산을 더 효율적으로 측정할 수 있도록 하기 때문에 모델의 성능을 높이기 위한 과정을 효율적으로 만든다. 즉 세 세트를 잘 설정하는 것만으로 모델의 성능향상에 긍정적으로 기여할 수 있다. 일반적으로 모델링할 때, train 데이터로 모델을 학습시키고 dev 데이터 셋으로 다양한 모델 중 어떤 모델의 성능이 좋은지 테스트한다. dev 데이터 셋을 통해 나온 최적의 학습성능을 가진 모델로 test 데이터 셋에서 모델의 비편향을 추정하고 모델이 얼마나 잘 작동하는지 확인한다. 머신러..

엔트로피와 크로스엔트로피

참고강의1 - 엔트로피 참고강의2 - 크로스 엔트로피 ▶ 엔트로피란 entropy 는 무질서도를 의미한다. 따라서 엔트로피 값이 클수록 데이터가 혼재되어있어 분류가 잘 되어있지 않은 상태이고 그 값이 작을 수록 데이터가 잘 분리되어있다는 뜻이다. 즉 불확실성의 정도를 나타내는 수치라고 볼 수 있다. ▶엔트로피 공식 어떤 특정 현상이 발생할 확률을 p라고 할 때 엔트로피의 공식은 다음과 같다. 특정 사건이 발생할 확률 p에 로그를 취해준 p를 곱한 후 모두 더한 값에 -를 취해준다. ▷예제 해당 공식의 예제를 들어보자. 동전을 던졌을 때 앞이 나올지 뒤가 나올지 예측하는 문제가 있다고 해보자. 앞이 나올 사건과 뒤가 나올 사건에 대해 예측한 확률 분포값에 따라 각각의 엔트로피를 구해보자. 1) 앞이 나올 ..

CNN 추가 개념/ 풀링, 배치정규화, NiN 연결, 잔차연결

파이토치로 배우는 자연어처리 책을 참고하여 작성하였습니다. 참고 강의- BatchNormalization 참고 자료- 1x1 convolution / 잔차연결 CNN의 추가 개념에 대해서 간단하게 정리해보고자한다. CNN에 대한 개념과 기본설명은 다음 포스팅을 참고하자. https://westshine-data-analysis.tistory.com/73?category=873079 자연어 처리를 위한 피드포워드 신경망(2)/ 합성곱 신경망, 파이토치 구현 파이토치로 배우는 자연어처리 책을 참고하여 작성하였습니다. 참고 강의 ▶ 합성곱 신경망이란 합성곱 신경망은 공간상의 부분 구조를 감지하는 데 적합하기 때문에 이미지 처리에서 많이 사 westshine-data-analysis.tistory.com ▶ 풀..

신경망의 기본 구성 요소(7)/ 과대적합과 L1, L2 규제

참고 사이트 참고 영상 ▶ 과대적합 심층 신경망은 때로 수백만 개의 파라미터를 가지고 있을 정도로 자유도가 매우 높아 대규모의 데이터 셋을 학습시킬 수 있다. 그러나 이런 특징이 학습데이터에 모델을 과대적합시켜 막상 테스트 데이터에선 성능을 발휘하지 못하는 현상이 발생할 수 있다. 과대 적합을 줄이기 위해선 그래프를 일반화시켜야한다, 그래프를 일반화 시킨다는 것은 데이터 포인트에 맞춰져 있던 그래프들의 기울기를 작게 만든다는 의미이기도 하다. 기울기를 작게 만들기 위해선 가중치를 줄이는 과정이 필요하다. 가중치가 너무 작아지면 과소적합이 발생할 수 있기 때문에 과대적합과 과소적합을 적절히 완충시킬 수 있는 값을 구하는 것이 중요하다. 이 과대적합 문제를 막기 위해 l1, l2규제, 드롭아웃 등의 규제 방..

신경망의 기본 구성 요소(6)/ 손실함수

파이토치로 배우는 자연어처리 책을 참고하여 작성하였습니다. ▶ 손실함수 손실함수는 실제 값과 예측값을 입력으로 받아 실숫값 점수를 만드는 함수로 수행하고자 하는 태스크에 따라 손실함수가 달라진다. 손실함수로 나온 실숫값이 높을수록 예측값과 실제값 사이의 차이가 크다는 의미이기 때문에 모델의 성능이 나쁘다고 할 수 있다. 따라서 모델 학습은 이 실수값을 낮추기 위해 학습되어야할 것이다. 주로 회귀모형에선 평균 제곱 오차 손실 Mean Squared Error, 분류 모형에선 크로스엔트로피 Cross Entropy 손실함수를 많이 사용한다. 해당 포스팅에선 평균 제곱 오차손실, 다중 분류 문제에서 많이 사용되는 범주형 크로스 엔트로피 손실과 이진 분류 문제에서 많이 사용되는 이진 크로스 엔트로피 손실에 대해..

신경망의 구성요소(5)/ 활성화 함수- 소프트맥스

파이토치로 배우는 자연어처리 책을 참고하여 작성하였습니다. 참고한 유튜브 ▶ 소프트 맥스란? 값을 예측하기 위해 신경망의 출력물들을 변환하기 위한 활성화 함수로 시그모이드 함수는 각 클래스에 대한 확률값을 구할 수 있다. 그러나 시그모이드는 각 클래스에 대한 확률값이므로 모든 확률값을 더하면 1보다 큰 값이 나온다. 반면 소프트맥스는 입력으로 들어간 모든 클래스에 대한 확률값을 도출하므로 도출된 모든 확률값을 더하면 1이 된다. 소프트 맥스의 공식은 다음과 같다. 각 출력값에 대해 모든 출력 값의 합으로 나눠 K개 클래스에 대한 이산 확률 분포를 만든다. 즉 0-1사이의 값을 가지고 출력의 합이 1이되는 분포를 가진다. 이는 분류 task 에서 유용하게 사용될 수 있으며 주로 범주형 크로스 엔트로피와 함..

신경망의 구성요소 (4)/ 활성화 함수- ReLU

▶ 렐루(Recified linear unit) 렐루는 최근에 등장한 신경망의 활성화 함수로 최근 딥러닝 혁신의 상당수를 가능케 해준 활성화함수이다. 시그모이드부터 탄젠트 함수까지 해결되지 않았던 기울기 소실문제를 해당 함수로 해결할 수 있었다. 공식을 먼저 알아보자. 이전 포스팅에서 보았던 함수와는 달리 엄청나게 간단한 공식이다. 해석하면 렐루 함수는 x가 음수면 0을, x가 양수이면 x값을 출력하는 함수이다. 따라서 ReLU함수는 y=x라는 직선 부분과 0 이하의 부분을 0으로 출력하는 부분으로 이뤄져있다. ▷ 구현 이렇게 간단한 공식인만큼 계산복잡도가 낮아져 깊은 신경망에서 학습속도를 개선시키는 효과가 있다. 시그모이드, 탄젠트함수와 마찬가지로 비선형 함수이고 음수에선 0, 양수에선 y=x값으로 전..

신경망의 기본 구성요소(3)/ 활성화 함수- 하이퍼볼릭 탄젠트

파이토치로 배우는 자연어처리 책과 참고하여 작성하였습니다. 참고블로그 ▶ 하이퍼볼릭 탄젠트 하이퍼볼릭 탄젠트 활성화 함수는 시그모이드 함수를 선형변환한 것으로 시그모이드의 단점(그래디언트 소실)을 보완해주는 활성화 함수이다. 다음은 탄젠트의 공식이다. 탄젠트 활성화 함수는 시그모이드 함수를 선형변환한 것으로 다음과 같이 증명할 수 있다. ▷ 구현 하이퍼볼릭 탄젠트 활성화 함수를 파이토치로 구현해보자. 위 그래프에서 볼 수 있다싶이 시그모이드 함수의 출력값이 0-1이었던 반면 탄젠트 함수의 출력값은 -1에서 1값을 갖는다. 즉 기울기가 양수와 음수 모두 나올 수 있기 때문에 시그모이드 함수보다 학습 효율성이 뛰어나다. -1에서 1에 y가 분포하고 있어 시그모이드 함수보다 그 범위가 넓어 출력값의 변화폭이 ..

신경망의 기본 구성요소(2)/ 활성화함수- 시그모이드

밑바닥부터 시작하는 딥러닝을 교재로 한 유튜브 강좌와 파이토치로 배우는 자연어처리 책을 참고하여 작성하였습니다. ▶ 활성화함수 활성화 함수는 신호가 전달되고 전달된 값이 일정 임계값을 넘길 때 다음 뉴런을 활성화 시킬 수 있도록 하는 함수이기 때문에 "활성화"함수로 불린다. 활성화 함수는 데이터가 학습이 가능하게(= 미분이 가능하게) 만들어주는 함수로 여러가지 함수가 존재한다. 해당 포스팅과 다음 포스팅들에선 여러 활성화 함수 중 sigmoid, hyperbolic tangent, Recified Linear unit(RELU), softmax함수에 대해 알아보고자한다. 이번 포스팅에선 sigmoid 함수에 대해 알아보자. ▶ 시그모이드 함수 시그모이드는 신경망 분야 초창기 부터 사용한 활성화 함수로 0..