728x90
📌 4장. 딥러닝
1️⃣ 딥러닝 개요
(1) 개요
- 인공신경망에 기반을 둔 머신러닝의 한 종류
- 연속된 층(layer) 에서 점진적으로 의미있는 표현을 배우는데 강점이 있으며 데이터로부터 표현을 학습한다.
- ML 은 정형 데이터에 적합한데 비해 딥러닝에 잘 맞는 데이터는 비정형데이터이다.
- 음성인식, 이미지 인식, 자연어처리, 헬스케어 등 전반적인 분야에 활용되고 있다.
2️⃣ 인공신경망 ANN ⭐⭐ - 딥러닝 구조, 뉴런, 활성화 함수, 신경망 모형 구축 시 고려사항
(1) 개요
- 인공신경망 : 인간 뇌의 신경망에 착안하여 구현된 컴퓨터 시스템의 총칭
(2) 연구
- 매컬럭과 피츠 : 신경세포 신호처리 과정을 모형화하여 단순 패턴분류 모형 개발
- 헵 : 신경세포 사이의 연결강도 weight 를 조정해 학습규칙 개발
- 로젠블럿 : 퍼셉트론이라는 인공 세포를 개발
- XOR 문제
- 홉필드, 러멜하트, 맥클랜드 : 역전파 알고리즘을 활용해 비선형성을 극복한 다계층 퍼센트론
(3) 구조
- 입력층 - 은닉층 - 출력층
- 은닉층이 한 개면 단층 신경망, 여러 개면 다층 신경망
- 뉴런 : 기본적인 정보처리 단위
- 가중치 : 가중된 링크에 해당하는 것으로 인간의 뇌에 시냅스에 해당한다.
- 가중치가 크다면 뉴런이 서로 강하게 연결되어 있는 것
- 최초 가중치는 랜덤 값이므로 훈련 데이터를 통해 가중치를 반복적으로 갱신하고 학습 알고리즘에 따라 훈련을 수행한다.
- 뉴런은 입력링크에서 여러 신호를 받고 개별 신호의 강도에 따라 가중되며 활성화 함수에서 새로운 활성화 수준을 계산해 출력링크로 출력 신호를 보낸다.
(4) 뉴런의 계산
- 활성화 함수를 사용하여 출력을 결정하며, 입력신호의 가중치 합을 계산해 임계값과 비교한다. 임계값보다 작으면 뉴런의 출력은 -1, 같거나 크면 +1을 출력한다.
(5) 활성화 함수
- 시그모이드 함수 : 로지스틱 회귀분석과 유사하며 0~1 의 확률값을 가진다.
- 소프트맥스 함수 : 표준화지수 함수라고도 불리며 출력값이 여러개로 주어져 목표치가 다범주인 경우 각 범주에 속할 사후확률을 제공하는 함수이다.
- ReLU 함수 : 입력값이 0 이하는 0 , 0보다 크면 x 값을 그대로 반환하는 함수이며 최근 딥러닝에서 많이 활용하는 함수이다.
- Leaky ReLU : dead ReLU 문제를 해결하기 위해 입력값이 0보다 작은 경우엔 매우 작은 기울기를 부여하여 출력값이 0이 되는 것을 막기위해 등장한 ReLU의 변형함수
- deda ReLU : ReLU 모델이 학습하는 동안 일부 뉴런이 0만을 출력해 활성화되지 않는 문제. 가중치가 업데이트 되다가 음수가 되는 순간 0으로 변환되어 출력되기 때문에 발생하는 문제이다.
- 하이퍼볼릭 탄젠트 함수 : 입력값을 -1과 1 사이의 값으로 변환해주는 함수. 시그모이드와 달리 0을 중심으로 하고있기 때문에 시그모이드와 비교했을 때 반환값의 변화폭이 더 크며 기울기 소실 문제가 적은 편이다.
(6) 단일 뉴런의 학습 (단층 퍼셉트론)
- 퍼셉트론은 선형 결합기와 하드 리미터로 구성되며 초평면은 n 차원 공간을 두 개의 영역으로 나눈다.
- 초평면을 '선형 분리함수' 로 정의한다.
(7) 신경망 모형 구축시 주의사항
a. 입력변수
🔹 범주형
- 모든 범주에서 일정 빈도 이상의 값을 갖고 각 범주의 빈도가 일정할 때
- 범주형 변수는 가변수화하여 (남녀: 1, 0 또는 1, -1) 가능하면 모든 범주형 변수는 같은 범위를 가지도록 가변수화 하는 것이 좋다.
🔹 연속형
- 입력변수 값들의 범위가 변수간 큰 차이가 없을 때
- 연속형 변수는 분포가 평균을 중심으로 대칭이 아니면 좋지않은 결과를 보이기 때문에, 로그변환을 하거나 범주화를 시켜 각 범주의 빈도가 비슷하게 분포하도록 설정하는 방법을 취한다.
b. 가중치 초기값과 다중 최소값 문제
- 역전파 알고리즘은 초기값에 따라 성능이 좌우된다.
- 가중치가 0으로 초기화되면 시그모이드 함수는 선형이 되고 신경망 모형은 근사적으로 선형모형이 된다. (반복하여도 값이 전혀 변하지 않음)
- 일반적으로 초기값은 0 근처로 랜덤하게 선택하므로 초기 모형은 선형 모형에 가깝고, 가중치 값이 증가할수록 비선형 모형이 된다.
c. 학습 모드
- 온라인 학습 모드
- 각 관측값을 순차적으로 하나씩 신경망에 투입하여 가중치 추정값이 매번 바뀐다.
- 속도가 빠르고 훈련자료에 유사값이 많을수록 그 차이가 더 두드러진다.
- 훈련자료가 비정상성과 같이 특이한 성질을 가진 경우가 좋다.
- 국소 최솟값에서 벗어나기 쉽다.
- 확률적 학습 모드
- 온라인 학습 모드와 같으나 신경망에 투입되는 관측값의 순서가 랜덤하다.
- 배치 학습모드
- 전체 훈련 데이터를 동시에 신경망에 투입
d. 은닉층과 은닉노드의 수
- 과대적합, 과소적합 문제 주의
- 은닉층의 수가 하나인 신경망은 범용 근사자(universal approximator) 이므로 모든 매끄러운 함수를 근사적으로 표현할 수 있다. 그러므로 가능하면 은닉층은 하나로 선정한다.
- 은닉노드의 수는 적당히 큰 값으로 두고 가중치를 감소시키며 적용하는 것이 좋다.
f. 과대적합 문제
- 신경망에서는 많은 가중치를 추정해야 하므로 과대적합 문제가 빈번하다.
- 알고리즘의 조기종료와 가중치 감소 기법으로 해결할 수 있다.
- 조기종료 : 모형이 적합하는 과정에서 검증 오차가 증가하기 시작하면 반복을 중지
- 선형모형의 능형 회귀와 유사한 가중치 감소라는 벌점화 기법을 활용한다.
e. 경사 감소 소멸 문제
- 신경망의 층수가 늘어나면서 앞쪽에 위치한 은닉층들의 가중치가 제대로 훈련되지 않는 현상을 뜻한다.
- 한계 극복 : DBN, SAE, CNN
⭐ DNN, CNN, RNN 개념과 특징
3️⃣ 심층신경망 DNN
(1) 개요
- 입력층과 출력층 사이에 다중의 은닉층을 포함하는 인공신경망
(2) 특징
- 데이터의 잠재적인 구조 파악이 가능
- 비선형적 관계를 학습 가능
- 학습을 위한 많은 연산으로 인해 과적합 혹은 시간복잡도 문제가 발생 👉 드롭아웃, ReLU, 배치 정규화 기법 적용
- ex. 암진단 시스템 구축, 주가지수 예측, 기업 신용평가, 환율예측 등에 활용
- 이미지 데이터 👉 CNN, 시계열 데이터 👉RNN, 비지도형 기계학습을 기반으로 하는 DBN, 심층 오토인코더 등
4️⃣ 합성곱 신경망 CNN
(1) 개요
- 사람의 시각인지 과정을 모방하여 인공신경망에 '필터링' 기법을 적용한 것
- 이미지와 같은 2차원 데이터를 분석하는 심층신경망
- 필터링을 통해 입력된 이미지로부터 특징을 추출한 뒤 신경망에서 분류 작업을 수행한다.
- 영상인식, 영상분류, 이미지 인식, 자연어 처리 등에 주로 사용된다.
(2) 알고리즘
- 기존 인공신경망 : 이미지 픽셀 값들을 '그대로' 입력받아 생기는 훈련상의 문제점들이 발생
- CNN 알고리즘 : 이미지를 대표할 수 있는 특성들을 도출해 신경망에 넣어주는 방법을 사용
- 합성곱 레이어와 풀링 레이어로 구성되어 있다.
- 합성곱 레이어 : 특징을 추출하는 레이어
- 풀링 레이어 : 추출된 특징 데이터의 사이즈를 줄이고 노이즈를 상쇄
(3) 합성곱 과정
- 이미지 데이터가 입력되었을 때 특징을 뽑아내는 과정
- 합성곱 층의 뉴런은 이미지의 모든 픽셀에 연결되지 않고 '수용 영역' 안에 있는 픽셀만 연결된다.
- 수용영역 용량만큼의 필터가 존재
- 필터 = 커널 : 합성곱층에서 가중치 파라미터에 해당하며 적절한 필터를 찾도록 삭습된다.
- 필터링을 통해 얻은 특성 지도들은 ReLU 와 같은 활성화 함수를 거쳐 출력된다.
- 패딩 : 합성곱 연산으로 인해 데이터의 크기가 작아져 정보 손실이 발생할 수 있는데, 이러한 문제를 해결하기 위해 이미지의 가장자리를 특정 값으로 감싸는 패딩 과정을 수행한다.
a. Feature Map
- CNN 의 합성곱 계층의 입출력 데이터를 칭한다.
- Filter : 특징을 추출하기 위해 사용하는 파라미터로 일반적으로 4x4 또는 3x3 행렬로 정의된다.
- Stride : 지정된 간격으로 필터를 순회하는 간격
- Filter 와 Stride 에 따라 결과 값이 달라질 수 있으므로 알고리즘 처리에서 중요한 역할을 한다.
- 입력 feature map : NxN , Filter : FxF 👉 출력 feature map : { (N-F)/Stride } + 1
b. Padding
- 출력 feature map 을 계산할 때 Stride 설정에 따라 출력 Feature map 이 정수로 나누어 떨어지지 않아 Filter 나 Stride 를 사용할 수 없게 된다.
- 이러한 문제로 정보가 사라지는 등의 상황이 발생할 수 있어 Padding 을 사용해 방지한다.
- Padding 은 입력 feature Map 의 외곽에 지정된 픽셀만큼 특정값으로 채워넣는 것을 의미한다. 보통 padding 값으로 0을 채워 넣는다.
- 기존 입력 Feature Map 이 NxN 이었다면 패딩 후에는 (N+2) x (N+2) 행렬을 가진다.
- 패딩을 통해 출력 Featrue Map 사이즈를 조절하는 기능과 인공신경망이 이미지의 외곽을 인식하는 학습효과가 있다.
(4) 풀링 과정
- 풀링 과정을 통해 활성화된 특성 지도의 크기를 줄인다. 이 특성 지도들에 다시 컨볼루션, 활성화, 서브 샘플링을 수행해 점차적으로 로컬한 특성지도로부터 글로벌한 특성 지도를 만든다.
- 최종 특성 지도는 인공신경망에 입력되어 이미지가 어떤 클래스 라벨에 속하는지 분류해준다.
- CNN = 특성 추출 신경망과 분류 신경망을 직렬로 연결한 구조
- 풀링은 필수는 아니고, 데이터 사이즈를 줄이고자 할 때 선택적으로 적용한다.
- 종류 : 맥스 풀링, 평균 풀링
5️⃣ 순환 신경망 RNN
(1) 개요
- 시계열 데이터 (sequential data, 음성, 자연어, 센서, 주가 데이터 등) 를 처리하기 위한 모델로 순차적이며 반복적인 데이터를 학습하는데 특화된 알고리즘이다.
- 내부가 순환구조로 이루어져 있는 인공신경망이다. (입력층 - 은닉층 - 출력층) 으로 이루어져 있으나 가장 큰 특징은 은닉층이 이전 데이터를 참조하도록 서로 연결되어 있다는 것이다.
- 순환구조를 통해 과거에 학습했던 내용을 현재의 학습에 반영한다.
- 신경망 내부에 상태를 저장해 시퀀스 형태의 데이터 입력을 처리해 데이터를 예측한다.
- 동일한 가중치와 bias 가 모든 입력값에 대해 동일하게 사용
- RNN 네트워크를 재귀적으로 사용하기 때문에 길이에 대한 제한이 없다.
- 병렬처리가 불가능하여 속도가 느리다.
(2) 특징
- 텍스트 앞 뒤 단어를 파악하는 분석처럼 과거 데이터를 고려해 현재 입력 데이터를 순차적으로 처리하는 분석에 주로 사용된다.
- 자동번역, 단어 의미 판단, 이미지 캡션 생성 등에 활용되고 있다.
- 초기값에 따라서 과거 데이터를 계속 곱할수록 작아지는 문제가 발생한다.
- 오래전 데이터에 대한 기울기 소실 문제 👉 LSTM 방식이 등장
6️⃣ LSTM
(1) 개요
- 장기 의존성 문제 : 입력된 데이터와 참고해야할 데이터의 위치 차이가 커질 때 문맥을 연결하기 힘들어진다는 것 👉 은닉층의 과거 정보가 마지막까지 전달되지 못하는 현상
- RNN 의 장기 의존성 문제를 보완할 딥러닝 프레임워크가 LSTM 이다.
- RNN 동작 방식 : 이전 은닉층의 값과 현재 입력값에 각각 가중치를 곱하고 tahn 함수를 거쳐 얻은 출력값을 해당 순번의 은닉층 값으로 계산하는 과정 반복
- LSTM 동작 방식 : 은닉층에서 출력층으로 넘어가는 연산은 RNN과 동일. LSTM 은 이전 단계의 정보를 메모리셀에 저장해 현재 시점의 정보를 토대로 과거 내용을 얼마나 반영할지 정하고 그 결과에 현재의 정보를 더해 다음 시점으로 정보를 전달한다.
- 긴 시퀀스의 입력을 처리하는데 탁월한 성능을 보인다.
- 메모리와 결과값을 컨트롤 가능하지만 메모리가 덮어씌워질 가능성과 연산속도가 느리다는 단점이 있다.
728x90
'2️⃣ Study > ▢ 자격증 | 교육' 카테고리의 다른 글
[자격증] AIFB AICE Associate 합격 후기 (10) | 2022.08.02 |
---|---|
[빅분기] 3과목 빅데이터 모델링 : 5장 (0) | 2022.04.07 |
[빅분기] 3과목 빅데이터 모델링 : 2장 통계분석 기법_part2 (0) | 2022.04.03 |
[빅분기] 3과목 빅데이터 모델링 : 2장 통계분석 기법_part2 (0) | 2022.03.31 |
[빅분기] 3과목 빅데이터 모델링 : 2장 통계 분석기법 Part1 (0) | 2022.03.30 |
댓글