Perceptron and Neural Networks

Perceptron

: 인간의 Neuron을 본따 만든 구조 (선형 분류를 기반으로 한다)

Single Layer Perceptron

  • Hard thresholding function을 통해 표현한다.
  • Linear 하게 구분 가능한 것들
  • ex) AND / OR ..

Multi Layer Perceptron

  • Linear 하게 구분할 수 없는 것들
  • ex) XOR

Hidden Layer

  • Input Layer 와 Output Layer을 제외한 신경망을 구성하는 다른 Layer

Foward Propagation

: Neural Network의 진행방향대로 진행하는 것

Linear Layer (a.k.a Fully-Connected Layer)

Neural Network의 Perceptron들

Softmax Layer (Softmax Classifier)

배경: Sigmoid Output 과 MSE 의 문제점에서 출발 → 학습이 느려지는 문제가 발생

방법

음수의 값을 특정 함수를 통해 양수화 한 뒤, 그 값의 상대적 비율을 계산한다.

Softmax Loss ( Cross Entropy Loss )

softmax filter를 통해 나온 값이 1에 가까우면 가까울수록 L ↓

Logistic Regression as a Special Case ?

Training Neural Networks

BackPropagation to Compute Gradient Descent

Computing 의 연산를 반대방향으로 진행하여 값을 구하는 것

problem of using sigmoid

back propagation이 진핼될 때 gradient가 점점 작아져 나중에는 거의 변화가 없게 된다.

alternative of sigmoid

Tanh Activation

  • zero -centered
  • 여전히 사라지는 문제가 발생한다.

ReLU

  • 양수일 땐 그대로, 0보다 작을 땐 0
  • 0보다 작다고 하더라도 gradient가 0인 것은 아니지만 이를 사용하면 그렇게 간주하게 된다.

Batch Normalization

학습을 용이하게 하기 위한 과정 Activation Function들의 실효적인 부분에서만 사용할 수 있도록 training dataset 을 Gaussian을 적용하여 Normalization하여 그 부분에만 할당.

problem

결과값에서 normalize 된 내용을 원하는 것이 아니므로 원상복구 해주는 과정이 필요하다.

Convolutional Neural Networks & Image Classification

  • 2012년 AlexNet등장 이후 비약적인 발전을 함.
  • 2015년 이후 사람보다 더 정확한 판정을 내리고 있음

How computers see

  • Image를 픽셀별로 구분하여 각각의 구분사각형이 filter 와 얼마나 유사한지를 통해 판별
  • 같다면 1 다르면 -1 을 Matrix에 저장한다
  • 값을 모두 더한 뒤 구분사각형의 사이즈로 나누어 저장한다.

Convolution Layer

  • Channel = Depth : Layer 를 몇개의 층으로 할 것인지 일반적으로 3 (RGB)
  • Activation Map : filter를 거친 값들을 저장하는 공간

Pooling

  • Activation Map에서 새로운 개념의 filter를 적용하여 가장 큰 값만 추출

ReLUs (Rectified Linear Units)

  • Activation Map의 값에 ReLU를 적용하여 저장

Feature Extraction

이미지에서 filter에서 중요하다고 생각되는 부분을 추출

Fully Connected Layer

축약된 Matrix의 값들을 한줄짜리 벡터로 변환한다. feature value들의 값을 통해 어떤 것인지 구분하는 것

Advanced CNN Architectures

VGGNet

  • Using small convolution filters & deep Layers

ResNet

  • Convolution 된 이미지에 입력을 한번 더 더하여 Layer을 추가함
  • H(x)가 x가 되게끔 하여 학습을 용이하게 하는 것이 목표임

Seq2Seq with Attention for NLP

Recurrent Neural Network

  • sequence Data에 특화된 것
  • 같은 함수를 여러번 반복하는 것 (재귀의 방식)

Problems

  • one to many : 사진을 설명하는 내용 추출하기
  • many to one : 설명을 통해 사진 찾기 / 문장의 감정을 추출하는 것
  • many to many: 기계번역 / 언어를 번역하는 것

Character - Level Language Model

  • 다음에 나올 단어를 찾아내는 것

How to solve gradient vanishing problem?

(Softmax 함수를 사용하므로 gradient vanishing problem 발생)

LSTM (Long Short-Term Memory)

  • Memorize the data that induced fore-step
  • Choosing data from memory that would be used

Seq2Seq and Attention Model

배경

  • NLP 에서 주로 사용됨
  • Encoder 와 Decoder 를 포함하고 있음
  • Encoder를 사용하기 때문에 입력 Vector의 사이즈가 크다면 학습이 어렵거나 유실될 수 있음

Attention

  • Encoder 에서 문장 안에서 중요한 내용이 무엇인지 decoder의 이전 내용을 이용하여 판단하여 softmax filter로 제공하고 결과를 도출
  • encoder의 단어들 사이의 관계를 미리 파악하여 사용하는 것임

Transformer

  • Attention 모듈 만을 사용하는 방식 ( RNN / CNN 사용 X )
  • RNN에서는 시점을 기준 ( 하나를 통과하고 다음 것을 통과하여 데이터를 정리) 였지만 여기선 아니다.
  • Data를 병렬적으로 전달하므로 문장 Data들의 위치를 모르므로 Postioning Vector와 같이 정보를 제공해야 한다.
  • RNN의 역할을 Encoder 와 Decoder를 거치며 진행하는 방식
  • Decoder가 사실상의 RNN 역할, 결과를 도출 할 때 Encoder에 Naive하게 입력된 값을 이용한다는 점
  • 결과를 도출하고 전체 결과에서 그 내용이 얼마나 영향을 미치는 지 확인 Q : 그렇다면 Transformer이나 Attention모델 에서도 Decoder의 연산이 끝날 때 까지 시간을 기다려야 하는가?

Self-Supervised Learning

BERT

  • Bidirectional Transformers = Encoder

    Pre-training of BERT

    MLM (Masked Language Model)

  • 내용의 일부를 가리고 학습시키는 것

    NSP (Next Sentence Prediction)

  • 문장의 순서를 미리 예측하는 것

    GPT

  • Generative Pre-Training Task (a.k.a Languager Modeling)