딥러닝 7

[6장] 적절한 하이퍼파라미터 값 찾기

■ 검증 데이터지금까지 훈련 데이터와 시험 데이터라 두 가지로 분리해 이용해왔다. 훈련데이터는 학습을 하고, 시험 데이터로는 범용 성능을 평가했다. 여기서 주의할 점은 하이퍼파라미터의 성능을 평가할때는 시험 데이터를 사용해서는 안된다. 시험 데이터를 사용하여 하이퍼파라미터를 조정하면 하이퍼파라미터 값이 시험 데이터에 오버피팅 되기 때문이다. 하이퍼파라미터 값의 '좋음'을 시험 데이터로 확인하게 되므로 하이퍼파라미터의 값이 시험 데이터에만 적합하도록 조정되어 버린다. 따라서 하이퍼파라미터 조정용 데이터를 일반적으로 검증 데이터(validation data)라고 부른다. [정리]훈련 데이터: 매개변수(가중치와 편향)의 학습에 이용검증 데이터: 하이퍼파라미터의 성능을 평가하는데 이용시험 데이터: 신경망의 범용..

[6장] 배치 정규화, 오버피팅, 가중치 감소, 드롭아웃

■ 배치 정규화 알고리즘학습을 빨리 진행할 수 있다.(학습 속도 개선)초기값에 크게 의존하지 않는다. 골치아픈 초기값 선택 장애 해결)오버피팅을 억제한다. (드롭아웃 등의 필요성 감소)배치 정규화의 기본 아이디어는 각 층에서의 활성화 값이 적당히 분포되도록 조정하는 것이다. ■ 오버피팅신경망이 훈련 데이터만 지나치게 적응되어 그 외의 데이터에는 제대로 대응하지 못하는 상태 오버피팅이 일어나는 경우매개변수가 많고 표현력이 높은 모델훈련 데이터가 적음■ 가중치 감소오버피팅 억제용으로 예로부터 많이 이용해온 방법이다.학습 과정에서 큰 가중치에 대해서는 그에 상응하는 큰 패널티를 부과하여 오버피팅을 억제하는 방법이다.손실함수에 가중치의 L2노름을 더한 가중치 감소 방법■ 드롭아웃신경망 모델이 복잡해지면 가중치 ..

[6장] 가중치의 초깃값

가중치 감소(weight decay) 오버피팅을 억제해 범용 성능을 높이는 테크닉 가중치의 표준편차가 1인 정규분포를 사용하면 데이터가 0과 1에 치우쳐 분포하게 되면서 역자파의 기울기 값이 점점 작아지다가 사라지게 된다. 이를 기울기소실(gradient vanishing)이라 한다.이는 활성화값들이 치우치면 표현력을 제한한다는 관점에서 문제가 된다.Xavier 초기값각 층의 활성화값들을 광범위하게 분포시킬 목적으로 가중치의 적절한 분포를 찾고자 했다.앞 계층의 노드가 n개라면 표준편차가 $\frac{1}{\sqrt{n}}$인 분포를 사용하면 된다는 결론을 이끌었다.이 초기값은 활서오하 함수가 선형인 것을 전제로 이끈 결과이다.He 초기값ReLU에 특화된 초기값이다.앞 계층의 노드가 n개일 때, 표준편차..

[6장] 매개변수 갱신방법

① SGD(확률적 경사하강법) 기울기를 통해 가장 크게 기울어진 방향으로 가자는 것이 SGD의 전략이다. $W \leftarrow W - \eta \frac{\partial L}{\partial W}$ ( W는 가중치 매개변수이고, dl/dw는 W에 대한 손실함수의 기울기이다.) SGD의 단점은 비효율적일 때가 있다. 비등방성(anisotropy)함수 (방향에 따라 성질, 즉 여기에서는 기울기가 달라지는 함수)에서는 탐색 경로가 비효율적이다. SGD가 지그재그로 탐색하는 근본 원인은 기울어진 방향이 본래의 최솟값과 다른 방향을 가리켜서라는 점도 생각해볼 필요가 있다.② Momentum(모멘텀) Momentum은 '운동량'을 뜻하는 단어로, 물리와 관계가 있다. $v \leftarrow \alpha v -..

활성화 함수

◆ 활성화 함수전 포스트에서 h(x)라는 함수가 등장했는데, 이처럼 입력 신호의 총합을 출력 신호로 변환하는 함수를 일반적으로 활성화 함수(activation function)라고 한다. 활성화 함수는 입력 신호의 총합이 활겅화를 일으키는지를 정하는 역할을 한다.[식 3.3]과 같이 활성화 함수는 임계값을 경계로 출력이 바뀌는데, 이런 함수를 계단 함수(step function)이라고 한다. 그래서 "퍼셉트론에서는 활성화 함수로 계단함수를 이용한다."라 할 수 있다. 즉, 활성화 함수로 쓸 수 있는 여러 후보 중에서 퍼셉트론은 계단 함수를 채용하고 있다.그럼 [식 3.2]를 다시 써보자. [식 3.2]는 가중치가 곱해진 입력신호의 총합을 계산하고, 그 합을 활성화 함수에 입력해 결과를 내는 2단계로 처리..

퍼셉트론

◆ 퍼셉트론(perceptron)딥러닝의 기원이 되는 알고리즘이다.다수의 신호를 입력으로 받아 하나의 신호를 출력한다. (여기서 신호란 전류나 강물처럼 흐름이 있는 것을 상상하면 좋다.)ex) x1, x2의 입력신호를 받고 y는 출력신호, w1과 w2는 가중치를 뜻한다. 입력신호가 출력신호 뉴런(노드)에 보내질 때는 각각 고유한 가중치가 곱해진다. (w1x1, w2x2) 만약 입력신호 뉴런에서 보내온 신호의 총합이 정해진 한계를 넘어설 때만 1을 출력한다. 그 한계를 임계값이라고 하며  Θ(세타)라고 한다. ◆ 퍼셉트론 구현하기AND함수 구현 가중치와 편향 도입앞에서 구현한 AND게이트에서 theta를 -b로 치환하면 퍼셉트론의 동작이 변경된다. 여기서 b를 편향(bias)라고 한다.이 가중치에 편향을 ..

파이썬 지식

◆ 파이썬 인터프리터- '대화모드'라고 하며 개발자와 파이썬이 대화 하듯이 프로그래밍이 가능하다.ex) 2+3 5 ◆ 파이썬 클래스(class)- '__init__'라는 특별한 메서드가 존재한다.이 메서드는 클래스를 초기화하는 방법을 정의한다. 이 초기화용 메서드를 생성자(constructor)라고 하며, 클래스의 인스턴스가 만들어질 때, 한번만 불린다. 또한 파이썬에서는 첫 번쨰 인수로 자신(자신의 인스턴스)을 나타내는 self를 명시적으로 쓰는것이 특징이다.