본문 바로가기

Study51

RNN - 2편 (LSTM) IndexLSTM (Long Short Term Memory)LSTM은 Long-term dependency를 capture하면서도 RNN의 vanishing/exploding grdaient problem을 극복하는 목적Simple RNN과 다르게 LSTM은 Memory를 위해 Cell state c(t) 와 Hidden state h(t) 2개의 벡터를 가지는데, 개괄적으로는 Cell state가 Long term, Hidden state가 Short term 메모리를 담당하고, 이 둘을 합쳐 Memory cell이라고 한다. Cell State 의 구성Input gate: 어떤 input을 cell state에 얼만큼 저장할지Forget gate: Memory unit (Cell state)에거 얼.. 2023. 7. 1.
RNN - 1편 (RNN구조, RNN의 Backpropagation) Index TDNN (Time Delayed Neural Network)RNN이 개발되기 전에는 temporal pattern을 갖는 문제를 해결하기 위해 기존의 DNN 구조에 input 으로 시계열 데이터를 시퀀스를 가지고 투입하는 TDNN 이 활용되었다. 특정 사이즈(n)의 window를 sliding 시켜가며 시계열 input data를 받는다. (마치 1stride 1D Convolution 같이) Input 데이터 안에 window size 만큼의 데이터간에는 순서,dependency가 있을 수 있지만, Input끼리는 independent하다. 즉 input(t) 와 input(t-1)은 shuffle 가능하다. 단점window size 가 너무 작으면 longer dependency 포착을 .. 2023. 7. 1.
CNN - 3편 (Up-sampling, U-Net) IndexUp-Sampling앞서 convolution - maxpooling 과정은 dimension reduction 즉 down-sampling 이라고 했다. Up-sampling (≒Decoing)은 Down-sampling (≒Encoding) 의 반대방향 변환이다.CNN 관점에서 Up-sampling은 압축된 low resolution feature map으로 high resolution image를 generate하는 것이다. UP-sampling의 대표적인 non-learnable한 방식이 interpolation(보간) 기법이다. 반면, 대표적인 Convolution을 이용한 learnable 방법이 ①Transpose convolution ②Fractionally-strided-conv.. 2023. 6. 30.
CNN - 2편 (Bottleneck, ResNet,Dropout) Index1×1 filter, Bottleneck 구조1×1 filter는 receptive field에는 영향을 미치지 않지만 nonlineariry를 추가해주고, feature map의 개수를 늘리거나 줄일수 있는, 사실상은 weight sharing을 하는 FC layer 역할을 하는 구조이다. 최소한의 변경으로 feature map 개수를 바꾸고 싶을 때 유용하며, 아래 그림과 같이 앞서 다뤘던  작은 size의 filter를 여러층 쓰는것이 유리하다는 내용과 비슷한 개념이다. Bottleneck구조는 1×1 filter를 앞/뒤로 이용해 동일한 receptive field에 계산량은 줄이고, nonlinearity는 늘리는 방식  ResNet (Residual Network)ResNet은 CNN.. 2023. 6. 29.
CNN - 1편 (CNN의 구조) IndexCNN 개요CNN은 이미지, 영상 데이터와 같이 huge dimension 이며, 객체의 위치가 바뀌더라도 인식할 수 있는 문제를 해결하기 위해 등장한 모델이다. CNN의 가장 큰 두 특징은 ① Weight sharing  ② Translation invariance 이다. Weight sharing : 아래 비교 그림과 같이 일반적인 FC 구조의 DNN은 항상 입력값으로 이전layer의 모든 노드를 사용하며 입력노드×출력노드 개수 만큼의 weight 파라미터가 필요한 반면, CNN에서는 입력값으로 이전노드의 정해진 사이즈만큼의 노드만 사용하고 weight도 그 사이즈에 맞춘 커널 형식으로 sharing 하게 된다. Translation invariance: 객체의 위치가 바뀌거나 조금의 변동이.. 2023. 6. 29.
Dropout 과 Batch Normalization Index RegularizationDropout 이전에 Regularization에 대해 잠깐 알아보면, Regularization 이라는 것은 특정 가중치가 급격히 커지는것을 막기 위한 규제를 의한다. (특정 weight가 너무 크다는것은 입력데이터에 너무 민감하고, 복잡한 모델일 가능성이 크기 때문에 과적합 경향이 그만큼 크다고 말할 수 있다)주로 Cost함수에 weight를 넣어서 penalty를 부여하는 방식을 사용한다. 대표적으로 사용하는 L1, L2 방식은 각각 가중치의 절대값, 제곱값을 Cost함수에 추가하는 방법이다 Dropout Dropout의 목적은 overfitting을 막기위함으로, 일종의 *Regularization(=가중치 규제) 기법이라고 할 수 있다. NN을 학습시키다 보면.. 2023. 6. 29.
활성화함수(Activation function)와 Optimizer IndexActivation function (활성화함수)Sigmoid : differential 하고 exploding 하지 않는다 (0~1사이의 값을 가짐). 하지만 vanishing gradient문제가 있다. Tanh : Sigmoid에 *2-1 을 해서 범위를 -1 ~ 1 로 바꿔준 함수. 주로 LSTM에서 사용된다. ReLU : 입력이 음수이면 0을, 양수이면 입력값 그대로를 반환한다. [0,∞) 로 exlpoding 하며, 무엇보다 미분했을때의 결과가 0 혹은 1이기 때문에 vanishing 문제를 해결해주고, 계산속도가 빠른 장점이 있다. 그러나 미분값이0인 node에 해당하는 가중치의 경우 학습이 안되는 문제가있다. Leaky ReLU : ReLU에서 특정 노드가 학습이 안되는문제 (sp.. 2023. 6. 29.
역전파(Backpropagation)와 Vanishing gradient IndexBackpropagation (역전파)Backpropagation is way of computing gradient efficiently to update millions of network parameters // gradient를 효율적으로 계산하는 방법아래의 수식처럼 최종 Cost를 여러 layer에 거쳐 chain rule을 이용해 미분해보면, 미적분과 같이 어려운 계산없이 x,y,y^과 같이 이미 가지고 있거나, Feedfoward 단계에서 계산된 값들의 선형결합(곱셈,덧셈)으로 gradient가 계산됨을 알 수 있는데, 이것이 Backpropagation 이다.  Vanishing gradient problemDeep neural network를 학습하다보면 (특히 layer의 개수.. 2023. 6. 29.