주로 이미지 데이터를 처리할때 사용한다
컨볼루션은 일종의 필터라고 볼 수 있다. input_image를 슬라이딩하면서 새로운 Feature Map을 만들게 된다.
만약 컨볼루션 레이어를 컬러이미지에 적용하게 된다면 위의 사진과 같이 3개의 필터를 만들고 각각 Feature Map을 생성 그리고 합 연산으로 1차원의 Feature Map을 추출하게 된다.
padding은 간단하게 이미지의 외각에 0으로된 픽셀값을 추가하여 최종적인 Feature Map의 크기를 조정 가능하게끔한다.
stride는 컨볼루션 레이어가 일반적으로 1칸씩 슬라이딩을 하게되는 이를 조정하여 2칸씩 3칸씩 슬라이딩이 가능하게끔 수정할수 있다.
최종적인 Feature Map의 Size는 위의 수식과 같이 계산된다.
주로 시퀀스 데이터(소리,문자열,주가) 데이터를 처리할때 활용된다.
히든 노드가 방향을 가진 엣지로 구성되어 순환구조를 이룬다.
만약 h e l l 이 input이라면 입력과 출력을 매칭시켜보면 h->e, e->l, l->l, l->o 순으로 l은 입력이라도 순서에 따라 출력값이 다른것을 볼 수 있다.
rnn의 순전파 같은 경우는 위의 식을 볼경우 = 이다 이때 는 현재입력 와 입력에 대한 가중치 를 곱해주고 다시
과거 의 노드의 입력 과 그에 대한 가중치 를 곱연산 해주고 좀 전에 계산한 식과 더해준다 그리고 바이어스 를 더해주어 현재 시점의 를 계산해준다.
는 현재 의 출력값과 가중치 를 곱해주고 출력에 대한 바이어스 를 더해주어 최종적인 출력을 뽑아낸다.
일반적으로 RNN은 시퀀스 길이가 길어지는 경우 그리고 관련 정보와 그 정보를 사용하는 지점 사이 거리가 멀 경우 vanishing gradient problem이 발생하게 됨으로 아래와 같은 모델들이 있다.
이번에는 그나마 익숙했던 RNN 과 CNN에 대해 공부해보았다. 비록 이 글에 역전파가 설명되어있진 않지만 나중에 작성하도록 하겠다.
첫주를 그래도 하루도 빠짐없이 글을 작성하고 공부를 해서 꾸준함이 유지 되었다고 생각된다. 이대로 계속 가면 문제가 없을것같다.