[빅데이터/인공지능 목차]

 

 

1. 기울기소실(Gradient Vanishing) 의 정의

  - 깊은 신경망을 학습할 때 역전파 과정에서 미분값이 사라지면서 학습이 중단되는 현상

  - 각 계층에서의 미분값이 0에 가까울 수록 입력층에 가까운 가중치들의 변동이 줄어들어 학습이 중단되는 현상

 

2. 기울기소실 개념도

3. 기울기소실을 발생시키는 활성화함수

4. 기울기소실 해결방안

  - Relu 활성함수 이용. Relu의 도함수는 상수값(0, 1)이므로 가중치변화가 계속 작아지는 문제 사라짐

 

 

경사하강법

  - 손실함수의 최소지점을 찾기 위해 경사가 가장 가파른 곳을 찾아서 한걸음씩 내려가는 방법

 

경사하강법에서의 가중치 업데이트식

 

그레이디언트 값을 구하기 위해 합성함수의 미분을 수행. (연쇄법칙 필요)

-> 각 계층에서의 활성화함수나 가중합함수의 미분값을 계산해서 서로 곱해서 구함

-> 미분값이 1보다 작은 값이면 가중치의 변화율이 점점 줄어들어 효과가 줄어드는 기울기소실 문제가 발생

[빅데이터/인공지능 목차]

 

개념 : 탈중앙 데이터(de-centralized data) 기반 새로운 머신러닝 패러다임

  • 분산된 환경에서 사용자의 데이터를 중앙서버에서 학습하지 않고, 개인의 휴대폰에서 모델을 학습하고, 학습된 결과를 중앙 서버에서 취합 후 개선된 공통 모델을 생성하는 기술
  • 기기나 기관 등 여러 위치에 분산 저장된 데이터를 직접 공유하지 않으면서, 서로 협력하며 AI 모델을 학습할 수 있는 분산형 머신러닝 기법
  • 고성능 중앙 서버 대신에 성능이 부족하지만 여러 대의 컴퓨팅 자원을 활용해서 알고리즘을 학습한 뒤, 각각의 컴퓨팅 자원에서 학습된 결과를 통합하여 최종 학습 모델을 만드는 방법
  • 개인 정보보호 문제와 학습에 많은 시간이 소요되는 단점 해결할 수 있는 학습방법

 

연합 기계학습 동작방식

  • 전역 모델 기준 로컬 학습 결과를 중앙 모델을 업데이트하고 결과를 다시 로컬로 전송하는 과정을 반복
  1. 중앙 Global 모델 전송
  2. 로컬 Data 기반 학습 후 로컬 Gradients를 암호화 전송
  3. 보안 Aggregation 및 학습
  4. 전역 모델 업데이트 결과를 로컬로 전송
  5. 로컬 모델 업데이트 및 2~5과정 반복

 

[빅데이터/인공지능 목차]

 

1. RNN(Recurrent Neural Network)의 개요

  가. RNN 정의 

  - 시퀀스 데이터 처리 위해서, 은닉층에서 나온 결과값을 다시 은닉층으로 돌아가 새로운 입력값과 연산을 수행하는 순환구조 

 나. RNN 사용 예시

   (1) 시계열 데이터 학습 가능

   (2) 음성 파형, 자연어 학습 가능

   (3) 자연어 처리, 음성 인식과 같은 순서가 있는 데이터 처리

 

2. RNN의 구조 및  설명

 

 -  위그람과 같이 RNN 순환구조를 펼친 형태로 입력값 {x0,x1,.....,xt}를 순차적으로 입력시 각 입력에 대응해 {h0,h1,...,ht}가 출력됨.

- 이때 RNN계층은 모두 같은 계층이고 출력{h0,h1,...,ht}를 각각 k 시점에서의 은닉 상태라고 함.

 

3. RNN 언어 모델 적용 예

 아래 그림은 'You say goodbye and I say hello' 에서 각 단어 다음에 나올 단어 예측하며 학습 시킨  RNN 언어 모델임

 - You라는 단어가 Embedding 계층을 거친 후 RNN에 입력되면, you의 은닉상태 h_you를 출력하고 다음에 올 단어 say를 예측함.

 - 위와 같은 과정이 RNN 학습, 순전파 과정임.

 - 이후 역전파 과정을 거치며 예측 단어와 실제 단어를 비교하면서 가중치와 은닉 상태를 업그레이드함.

 

4. RNN 문제점

 - RNN 에서 역전파가 진행되면서 기울기 소실되는 문제가 발생함

-  오차 역전파 통해 은닉 상태, 가중치, 편향은 기울기/미분값이 반영되며 업그레이드 됨

-  만약 RNN 계층이 많다면, 오차역전파가 진행될수록 기울기가 소실되는 문제가 발생함.

-  이 문제 해결하기 위해서 LSTM(Long short-term memory) 사용함             -끝-

[빅데이터/인공지능 목차]

 

1. 이미지 학습을 통한 패턴 분류, CNN(합성곱 신경망)의 개념

컴퓨터 비전을 위해 Convolution, Pooling, Fully connected layer 를 통해 feature(특징) 추출, 차원축소 단계를 거쳐 이미지를 분류하는 신경망 알고리즘

특징) Computer vision, Image classification

 

2. CNN(합성곱 신경망) Layer 구성 및 주요기술

  1) CNN(합성곱 신경망) Layer 구성도

2) CNN(합성곱 신경망) 주요기술

구분 주요기술 설명
컨벌루션 계층
(Convolution Layer)



Filter - filter는 특징이 data에 있는지 없는지를 검출해주는 함수
ReLu - filter적용 값을 비선형 값으로 바꾸어 주는 활성 함수
Stride - stride는 필터의 이동간격을 설정하여 convolution 연산을 수행할 지를 정의하는 파라미터
Padding - output 이미지가 너무 작아지게 되기 때문에 이것을 방지하기 위해서 사용
풀링 계층
(Pooling Layer)

Max Pooling - feature의 최대값 추출
Average Pooling - feature의 평균값 추출
연결계층
(Connected Layer)

Classificatoin - feature 값의 분류작업
Softmax - 분류의 확률을 제공하는 활성 함수

 

3. CNN의 하이퍼 파라미터

  • Filter의 사이즈
  • Padding 여부
  • Stride
  • Pooling layer 종류

 

"CNN은 Convolution과 Pooling을 반복적으로 사용하면서 불변하는 특징을 찾고, 그 특징을 입력데이터로 Fully-connected 신경망에 보내 Classification을 수행하는 것이다."

 

 

참고) 

http://taewan.kim/post/cnn/

https://itpewiki.tistory.com/429

https://rubber-tree.tistory.com/entry/%EB%94%A5%EB%9F%AC%EB%8B%9D-%EB%AA%A8%EB%8D%B8-CNN-Convolutional-Neural-Network-%EC%84%A4%EB%AA%85

[빅데이터/인공지능 목차]

 

1. 신경회로망의 개요

1) 신경회로망(Neural Network)의 정의

- 사람의 두뇌를 본따서 여러 개의 판단 노드와 그들 간의 연결을 통하여 구성된 네트워크로, 각 노드는 학습을 통하여 가중치 값을 조정함으로서 점차 해를 찾아가는 휴리스틱 기법

- 뉴런이라는 노드와 연결강도를 가지는 화살표가 입력과 출력 사이를 잇는 그래프

 

2) 신경회로망의 구성

구분 설명
입력층 - 도출하기 위한 기초데이터 입력계층
출력층 - 학습을 통해 도출된 결과값을 출력하는 계층
은닉층 - 다중신경회로망에서 입력층과 출력 층 사이에 존재
전달(활성화)함수 - 임계 값 이용 뉴런의 활성화여부를 결정하기 위하여 사용되는 함수
가중치(연결강도) - 활성화함수의 입력 값으로 사용되는 뉴런 간의 연결계수

 - 신경회로망에서 학습은 특정한 응용 목적에 적합하도록 뉴런 간의 연결강도를 적응시키는 과정

 

2. 신경회로망의 학습방법의 분류 및 학습 절차

1) 신경회로망 학습방법

입력방식 학습방식 신경회로망 모델
이진입력 지도 학습 - Hopfield network
지도 학습+비지도 학습 - Counter-Propagation Network
실수입력 비지도 학습 - ART Model
지도 학습 - Perceptron, Multilayer Perceptron
비지도 학습 - Competitive learning, Self-Organization Map(SOM)

2) 신경회로망의 학습 절차

2-1) 지도학습 (Supervisory Learning)

- 입력이 주어짐에 따라 원하는 출력값이 활성화되도록 가중치를 조절(Hopfield 학습규칙, 델타규칙, 오류역전파 학습규칙)

- 각 입력자료에 대해 원하는 목표출력값을 대응시켜 학습자료 구성

- 모든 입력패턴에 대해 정확한 답을 가지고 신경망을 학습하는 방법

- 연결강도는 신경망이 주어지니 답에 최대한으로 근접하는 답을 낼수 있도록 결정

단계 설명
① 단계 - 응용 목적에 적합 한 신경망 구조를 설계
② 단계 - 연결강도를 초기화
③ 단계 - 학습 패턴쌍(x, d)를 입력하여 신경망의 출력 y를 구함
④ 단계 - 출력 y와 목표치 d를 비교하여 오차 산출
⑤ 단계 - 오차를 학습신호 발생기 입력, 연결강도 변화량 Δw 계산
⑥ 단계 - 연결강도를 Δw 만큼 변경
⑦ 단계 - 변경된 연결강도(Δw)에 대하여 3~6 단계 반복
⑧ 단계 - 더이상 연결강도가 변하지 않으면 학습 종료

 

2-2) 자율학습(Unsupervised Learning)

- 목표값 없이 학습 데이터만 입력, 스스로 연결 가중치들을 학습 → 미리 결정된 해가 불필요 목표 출력값이 학습자료에 주어지지 않는 것으로 주어진 입력패턴 자체를 기억시키거나, 유사한 패턴을 군집화 시키는데 사용

- 입력에 대한 정확한 답을 알 필요가 없으며, 입력 데이터에 내재된 구조나 그 사이의 관계를 파악하여 패턴들을 분류

단계 설명
① 단계 - 응용 목적에 적합한 신경망 구조를 설계
② 단계 - 연결강도를 초기화
③ 단계 - 학습 패턴 x를 입력하여 신경망의 출력 y를 구함
④ 단계 - 출력 y를 학습신호 발생기 입력, 연결강도 변화량 Δw 계산
⑤ 단계 - 연결강도를 Δw만큼 변경
⑥ 단계 - 변경된 연결강도 (Δw)에 대하여 3~5 단계 반복
⑦ 단계 - 더 이상 연결강도가 변하지 않으면 학습 종료

 

 

+ Recent posts