케라스로 구현하는 고급 알고리즘

명징직조지훈 2023. 4. 10. 12:06

MLP, CNN, RNN

다층 퍼셉트론 MLP 는 완전 연결 신경망, 단순한 로지스틱 회귀와 선형 회귀 문제에 보편적으로 사용된다. 하지만 순차적인 다차원 데이터 패턴을 처리하기에 적합하지 않다. 

순차적 데이터 입력의 경우 종속성을 반결할 수 있도록 RNN 을 보편적으로 사용

이미지, 동영상과 같은 다차원 데이터의 경우 CNN 이 특징 맵을 추출하는데 탁월하다. 

 

정규화

신경망의 과대적합을 피하기 위해 모델은 정규화 regularization 계층을 사용한다. 일반적으로 드롭아웃,

l1, l2 와 같이 패널티 함수를 추가하여 매개변수 값을 줄인다. 

 

합성곱 신경망 CNN

convolution 연산은 입력 이미지를 커널이 입력 이미지로부터 학습했던 내용을 표현하는 특징 맵으로 변환한다. 

 

풀링 연산

특징 맵 크기를 줄여 커널의 적용 범위를 늘린다. 

 

순환 신경망 RNN

Recurrent neural network, 이전 출력을 입력 함수로 사용 

 

LSTM Long Short-Term Momory

현재 입력과 과거 출력, 셀 상태도 도입,

셀 상태 사이의 정보 흐름은 세 개의 게이트에 의해 제어된다. 이는 어떤 정보를 보존하고 교체, 셀 상태나 출력에 기여할 정보의 양을 결정한다.

 

RNN 을 구성하는 한 가지 방법은 양방향 RNN 모델을 만드는 것, 기본적으로 RNN 은 현재 출력이 과거 상태와 현재 입력에 의해서만 영향받는 점에서 단방향,

양방향 RNN 엣선느 정보를 뒤로 흐르게 함으로써 미래 상태가 현재 상태와 과거 상태에도 영향을 미칠 수 있다. 

 

심층 신경망

ResNet 은 잔차 학습 개념을 도입해 경사 소실문제를 해결, 깊은 신경망을 구출할 수 있게 해준다.

DenseNet 은 모든 합성곱에서 입력과 더 낮은 계층의 특징 맵에 직접 접근할 수 있게 함으로써 ResNet 기법을 개선했다. 병목 Bottleneck 과 전이 Transition 계층을 모두 활용하여 매개변수 개수를 낮게 유지한다.

 

심층 잔차 신경망 ResNet

심층 신경망의 주요 이점은 입려고가 특징 맵에서 다양한 수준의 표현을 학습하는 데 탁월하는 점,

곱셈 연산이 반복됨에 따라 경사 소실, 폭주 문제 발생

이를 완화하기 위해 ResNet 은 심층 잔차 학습 프레임워크라는 개념을 도입, 숏컷 연결을 통해 정보가 이동하게 만든다.

 

Conv2D-BN-ReLU 의 연산을 H() 라고 가정,

ResNet 의 경우 다음과 같은 방정식으로 표현하 ㄹ수 있다.

x_(l-1) = H(x_(l-2))

x_l = ReLU(F(x_(l-1)) + x_(l-2))

F() 를 잔차 매핑 residual mapping 이라고 한다. 

 

ResNet v2

  • 1*1 - 3*3 - 1*1 BN-ReLU-Conv2D 스택을 사용
  • 배치 정규화와 ReLU 활성화 함수를 2D 합성곱 전에 위치 

 

밀집 연결 합성곱 네트워크 DenseNet

DenseNet 은 다른 방식을 사용해 경사 소실 문제를 해결한다. 숏컷 연결 대신 이전 특징 맵 전체가 다음 층의 입력이 된다. 

 

 

오토 인코더

오토인코더는 주어진 입력 데이터의 압축된 표현을 찾으려는 심층 신경망 아키텍처

가장 간단한 형태로 오토 인코더는 입력을 출력에 복사함으로써 표현 또는 코드를 학습한다. 

입력 분포를 일반적으로 벡터 형태를 띠는 저차원의 텐서로 인코딩한다. 

이는 잠재 표현이나 코드, 벡터로 불리는 입력 분포의 숨겨진 구조에 근사한다. 

그 다음 잠재 벡터는 원본 입력을 복원하기 위해 디코더 부분에서 디코딩된다. 

입력과 출력의 차이는 손실 함수로 측정

오코인코더가 원래 형태로나 더 복잡한 신경망의 일부로 실제적인 애플리케이션을 가지고 있다. 저차원의 잠재 벡터를 제공하기 때문에 딥러닝의 고급 주제를 이해하는 핵심 도구, 

입력 데이터에 구조적 연산을 수행할 수 있다.

 

인코더와 디코더는 모두 비선형 함수이다. 이 둘을 구현하기 위해 신경망을 사용할 수 있다. 

효율성 및 입력 분포의 가장 두드러진 특성을 학습할 수 있도록 잠재 코드 latent code 를 제한하기 위해 입력 차원보다 훨씬 작은 게 일반적이다.

 

생성적 적대 신경망 GAN

Generative Adversarial Networks 생성 모델, 임의의 인코딩이 주어졌을 때 새롭고 의미 있는 출력을 생성할 수 있다.

 

잠재 공간 보간법 latent space interpolation 을 수행해 새로운 이미지 생성

생성기와 판별기라고 하는 두 적대 관계의 네트워크를 훈련시켜 입력 분포를 모델링하는 방법을 학습할 수 있다. 

어려운 부분은 생성기-판별기 네트워크를 안정적으로 훈련시키는 방버에 있다. 

판별기의 수렴 속도가 빨라지면 생성기는 충분한 경사 업데이트를 할 수 없게 된다. 

생성기가 다른 인코딩에 대해 비슷한 출력을 내는 모드 붕괴의 위험도 존재

 

판별기는 다음 방정식의 손실 함수를 최소화시킴으로써 훈련

표준 이진-교차 엔트로피 비용 함수 

훈련 하는 동안 판별기에서 실제 데이터, 가짜 데이터 두 개의 데이터 미니배치가 제공된다.

 

조건부 GAN

DCGAN 에서는 가짜 이미지는 임의로 생성, 어떤 숫자를 생성할지는 제어할 수 없어 생성기에 특정 숫자를 요청할 방법이 없다. 이는 조건부 GAN Conditional GAN 을 통해 해결

생성기와 판별기 입력 모두에 조건을 부여, 

입력으로 원-핫 벡터를 추가로 받는다는 점이 다르다.