일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- A Neural Algorithm of Artistic Style
- 소인수분해
- 소수
- CNN
- 딥러닝
- deep learning
- bayesian
- mnist
- 자전거 여행
- 역전파법
- Python
- SQL
- Convolutional Neural Network
- 냥코 센세
- Gram matrix
- 수달
- 히토요시
- 베이지안
- 오일러 프로젝트
- 합성곱 신경망
- project euler
- Autoencoder
- c#
- neural network
- 전처리
- 역전파
- 신경망
- 오토인코더
- backpropagation
- 비샤몬당
- Today
- Total
목록딥러닝 (11)
통계, IT, AI
1. 개요 Autoenoder를 실습하기 위하여 두가지 주제를 진행하였다. 첫번째는 의 그림 5-6을 재연하는 것이고 두번째는 Autoencoder로 사전학습을 하여 신경망의 학습이 잘 이루어지는지 확인하는 것이다. 즉, 신경망의 층이 많아지면 학습이 잘 이루어지지 않는 현상인 Gradient vanishing을 Autoencoder로 해결할 수 있는지 알아보고자 하였다. 재연을 위한 모든 코드는 깃허브의 deeplearning 폴더에 올려두었다. 실행을 위해서는 data/mnist 폴더의 mnist_loader.py를 실행하여 pkl 파일을 생성해야 한다. 2. 그림 5-6 재연 의 그림 5-6은 자기부호화기의 파라미터가 시각적으로 어떠한 경향을 갖는지 표현한 것으로 아래 그림 1과 같다. 입력층의 노..
5. 자기부호화기: Autoencoder5.1. 개요 자기부호화기(Autoencoder)란 출력이 입력과 같도록 설계한 신경망이다. 예를 들어 그림 5-1과 같이 입력층과 출력층의 유닛의 수가 서로 같은 2층의 신경망을 생각해보자. 1층에서는 입력 \(x\)가 \(f(Wx+b)\)를 거쳐 \(y(x)\)로 부호화된다. 2층에서는 \(y(x)\)가 \(\tilde{f}(\tilde{W}y(x)+\tilde{b})\)을 통하여 \(x\)로 복호화된다. 즉, 이 신경망의 목표는 입력을 부호화한 뒤 이어 다시 복호화했을 때 원래의 입력을 충실하게 재현할 수 있는 파라미터를 찾는 것이다. 5.2. 자기부호화기의 설계 5.2.1 출력층의 활성화 함수와 오차함수 자기부호화기의 활성화 함수는 중간층의 \(f\)와 출력..
1. 회귀문제- 본 포스팅에 있는 결과는 다음 첨부파일(code.7z)을 통하여 재현이 가능하다.- 역전파법을 회귀문제에 적용해보자. 실습을 위해 정의역이 \((-7,7)\)인 구간에서, \(\sin\)함수에 정규분포를 따르는 오차를 주어 적합해보자. 은닉층이 없는 경우와 있는 경우도 비교해본다. \(\epsilon\)과 같은 하이퍼 파라미터에 대한 설정은 첨부된 압축파일의 main_sin.py에 있다. - 그림 1은 은닉층을 추가하지 않고 적합한 결과이다. 붉은 선은 \(\sin\)함수, 파란 점은 에러를 추가한 자료 그리고 주황 선이 적합한 결과이다. 출력층의 활성화함수가 항등함수이기 때문에 단순선형회귀의 결과와 같다. - 그림 2는 같은 자료에 1개의 은닉층을 추가한 결과이다. 은닉층의 노드의 수는..
4. 역전파법: backpropagation 4.1 기울기 계산의 어려움 - 3장에서 설명한 경사하강법을 실행하기 위해서는 식 \((1)\)과 같이 \(E_n(\boldsymbol{w})\)에 대한 미분이 필요하다. 단, \(w^{(l),t}_{ji}\)는 \(t\)시점의 파라미터를 나타내며 \(E_n(\boldsymbol{w})\)은 \(n\)번째 미니배치의 오차함수이다. $$ w^{(l),t+1}_{ji} \leftarrow w^{(l),t}_{ji} - \epsilon \frac{\partial E_n(\boldsymbol{w})}{\partial w^{(l)}_{ji}} \tag{1}\label{(1)}$$ - 그런데 이 미분을 계산하는 것은 입력에 가까운 층일 수록 힘들다. 왜냐하면 \(\bol..
1. 개요- 입력이 4개이며 출력은 3가지 클래스를 갖는 경우를 생각해보자. 신경망은 그림 1과 같다.- 입력과 파라미터를 아래와 같이 정의한다.$$\begin{eqnarray} x_n&=& \begin{bmatrix}x_{n1} & x_{n2} & x_{n3}& x_{n4} \end{bmatrix}, \quad w=\begin{bmatrix}w_{11} & w_{21} & w_{31} \\ w_{12} & w_{22} & w_{32} \\ w_{13} & w_{23} & w_{33} \\ w_{14} & w_{24} & w_{34} \end{bmatrix}, \quad b=\begin{bmatrix}b_{1} & b_{2} & b_{3} \end{bmatrix} \\ \\ u&=&\begin{bmatr..
1. 개요- 변수가 2개이며 종속변수가 이진형인 경우를 생각해보자. 신경망은 그림 1과 같다.- 훈련데이터의 수는 200으로 한다. - 출력이 이진형이므로 활성함수는 sigmoid로 한다. - 즉, \(u_1=w_{11}x_1+w_{12}x_2+b_1\)이며 \(z_1=f(u_1)=1/(1+exp(-u_1))\)이다. - \(x_1\)과 \(x_2\)는 \(U(-1,1)\)에서 각각 독립적으로 생성한다.- 출력 \(d\)는 아래와 같이 정의한다. 단, \(\varepsilon\)은 \(N(0, 0.3^2)\)를 따른다.\begin{eqnarray}d = \begin{cases} 1 & \text{if } x_2 > x_1 + 1 + \varepsilon \\ 0 & \text{otherwise} \end..
1. 개요- 다음 파트로 넘어가기 전에 지금까지 배운 것을 구현하여 이해를 확실하게 하자. - 가장 간단한 경우부터 연습하기 위하여 변수가 1개인 회귀 문제를 선택한다. 즉, 신경망은 다음과 같다. - 출력층의 활성함수는 항등함수로 한다. 그러므로 \(u_1=w_{11}x_1+b_1\)이며 \(z_1=f(u_1)=u_1\)이다. - 연습에 사용할 \(x_1\)은 \(U(-4,4)\)에서 200개를 생성한다. - 출력 \(d\)는 \(x_1-1+\varepsilon\)이며 \(\varepsilon\)은 \(N(0,1)\)를 따른다. - 데이터의 형태는 그림 2와 같다. 붉은 선은 연습에서 추정해야 할 파라미터를 나타낸다.- minibatch를 사용하며 1개의 batch size는 20으로 하며 반복횟수(e..
3. 확률적 경사 하강법: Stochastic Gradient Descent 3.1 경사 하강법 - 학습의 목표는 \(\boldsymbol{w}=\underset{\boldsymbol{w}}{argmin}E(\boldsymbol{w})\)을 찾는 것이다. 그런데 \(E(\boldsymbol{w})\)가 일반적으로 볼록함수가 아니기 때문에 전역 극소점을 찾는 것이 매우 어렵다. 하지만 어떤 국소 극소점에서의 \(E(\boldsymbol{w})\)가 충분히 작다면 문제를 해결할 수 있다. - 이러한 점을 찾는 방법에는 경사 하강법이 있다. - 먼저 다음과 같이 \(E\)의 기울기를 구한다. 단, \(M\)은 \(\boldsymbol{w}\)의 성분 수이다. $$\nabla E(\boldsymbol{w})=\..
2. 앞먹임 신경망: Feedforward Neural Network 2.1 유닛의 출력 - 앞먹임 신경망은 층(layer) 모양으로 늘어선 유닛이 인접한 층과 결합한 구조이다. - 정보가 입력 측에서 출력 측으로만 흐르기 때문에 Feedforward라는 이름이 붙여졌다. - Multi-layer perceptron이라고도 부르지만 최초 제안된 perceptron은 입출력 함수가 step 함수로만 제한되었기 때문에 약간 다르다.- 유닛 한 개의 입출력의 예시는 아래와 같다. - 이 유닛이 받는 총 입력은 \(u_1=b_1+w_{11}x_1+w_{12}x_2+w_{13}x_3+w_{14}x_4\)이다.- \(b_1\)은 bias라고 부르며 1에 곱해지는 가중치이다.- \(w_{ji}\)는 입력에 대한 가중..
1. 시작하며 1.1 신경망 연구의 역사 1.1.1 다층 신경망에 대한 기대와 실망 - backpropagation의 등장하면서 신경망 연구에 진전이 있었으나 아래의 두가지 이유 때문에 붐이 끝나게 되었다.- 첫째, backpropagation은 다층 신경망에서의 overfitting을 막을 수 없었다. - 둘째, 이론을 만들기 어려워 연구가 어려웠다.- 단, Convolutional Neural Network; CNN은 다층 신경망에서 학습에 성공했고 특히 이미지 인식에서 좋은 성능을 보였으나, 신경망 연구에 대한 관심이 떨어지면서 CNN 또한 그렇게 되었다. 1.1.2 다층 신경망의 사전훈련(pre-training) - 다층 신경망에 대한 사전훈련을 통하여 학습이 원활하게 이루어짐이 보고됨에 따라 신..