3-1. 들어가며
학습 목표
- 인공신경망 개념 및 구조 파악
- 인공신경망 역사
- 인공신경망 문제점 및 딥러닝의 역사, 발전 파악
학습 내용
- 인공신경망
- 인공신경망 정의
- 신경 세포
- 인공 뉴런
- 인공신경망 구조
- 인공신경망 역사
- 최초의 인공신경망
- 퍼셉트론
- 다층 퍼셉트론
- 역전파 알고리즘
- 딥러닝 역사
- 인공신경망과 딥러닝
- 기울기 소멸 문제
- 과적합
- 딥러닝의 발전
3-2. 인공신경망
인공신경망 정의(Artificial Neural Network)
- 인간 두뇌에 대한 계산적 모델로 인공지능을 구현
- 인간 뇌 구조 모방
- 인간 뉴런 구조 및 활성화 작동원리 ➡️
input(자극)
, output(반응)
연관으로 구현함
신경 세포(Neuron)
-
신경 세포의 생물학적 원리
- 뉴런의 끝부분 즉, 스냅스에서 신경 전달 물질을 감싸는 소포체들이 들어있음
- 전기 신호가 스냅스에 들어오면 소포체가 끝으로 밀려나며 신경 전달 물질이 스냅스 밖으로 나옴
- 밖으로 나온 신경 전달 물질이 다음 뉴런의 수용체로 들어가 다시 전기 신호로 변환됨
- 수용체로 들어가지 못한 일부는 스냅스에 흡수되어 재활용됨
-
구조
- 수상돌기(Dendrite)
- 다른 신경세포의 축색돌기와 연결
- 전기화학적 신호를 받아들임
- 축색돌기(Axon)
- 수신한 전기화학적 신호 합성결과값 ➡️ 특정 임계값 이상일 경우 신호를 내보냄
- 신경연접(synapse)
- 수상돌기-축색돌기 연결
- 전달되는 신호 증폭 or 감쇄
Q. 인공신경망(Artificail Neural Network)은 인간의 뇌에서 어떤 부분을 모방하여 구현하는지
A.신경 세포의 구조 및 동작을 모방하여 구현
인공 뉴런(Artificial Neuron)
- 신경세포 구조 단순화 및 모델링한 구조
Node
, Edge
- 1개의 Node 안에서 입력(inputs) 및 가중치(weigths)의 곱, 합을 사용하는 선형구조
- 그 다음, 활성화 함수(activation function)을 이용하면 비선형 구조로 표현할 수 있음!
Q. 신경 세포(Neuron)와 인공 뉴런(Artificial Neuron)이 동작 혹은 구조적으로 닮은 부분
A. 여러 신호를 받아 ➡️ 하나의 신호를 흘려주는 것
++ 신호를 보내지 않거나, 다른 크기로 보내는 것까지가 비슷함
인공신경망 구조
- 이미지 출처 : 파일:Colored neural network.svg
- 여러 개의 인공뉴런을 모아 연결
- 층(layer) : 뉴런이 모인 단위
- 신경망 계층 예시) 입력층(input layer) - 은닉층(hidden layer) - 출력층(output layer)
Q. 인공신경망과 실제 신경망의 차이?
A. 인공 신경망의 경우, layer 단위로 쌓이지만 실제 신경망의 경우, 다소 비정형적이고 비계층적으로 연결될 수 있음
3-3. 인공신경망 역사
최초의 인공신경망
퍼셉트론(Perceptron)
분류 | 퍼셉트론 | 생체신경망 |
---|
입력 | xᵀ = (x₁, x₂, ..., xₙ) | 이전 뉴런의 발화 신호 |
가중치 | wᵀ = (w₁, w₂, ..., wₙ) | 시냅스 연결 강도 |
입력과 가중치 곱 | wᵢxᵢ (i = 1, 2, ..., n) | 시냅스의 연결 강도에 따른 신호 강화 or 약화 과정 |
가중 합산 | z = ∑(i=1 to n) wᵢxᵢ + b | 세포체에서 수상 돌기를 통해 들어온 신호를 모으는 과정 |
활성 함수 | f(z) = { 1 if z ≥ 0, 0 otherwise } | 세포체의 신호 발화 과정 |
출력 | f(x) = f(wᵀx + b) | 축삭을 따라 시냅스로 전달되는 과정 |
Q. 퍼셉트론이 활성화 함수를 통해 받아들인 정보를 전달하는 것에 있어, 전달을 할 수도 그렇지 않을 수도 있음 -> 이것은 신경세포의 어떤 과정이 모방된건지?
A. 세포체 신호 발화 과정
- 마빈 민스키(Marvin Lee Minsky), 시모어 페퍼트(Seymour Pepert)
- 이 문제를 해결하려면?
- 퍼셉트론으로 2개 이상 직선 표시가 가능하려면 AND 연산을 사용해야 함
- 다층 퍼셉트론(Multi-Layer Perceptron, MLP)
- 이미지 출처 : 아이펠
다층 퍼셉트론(Multi-Layer Perceptron, MLP)
역전파 알고리즘(Backpropagation)
- The Science of Machine Learning & AI
- 1982년 폴 워보스(Paul Werbos)가 학위 논문으로 첫 발표
- 1985년 데이비드 파커(David Parker), 얀 르쿤(Yann le Cun)이 제안
- 1986년 데이비드 루멜하트(David Rumelhart), 제임스 메클렐런드(James McClelland), 제프리 힌턴(Geoffrey Hinton), 로널드 윌리엄스(Ronald Williams)가 공개한 알고리즘임
3-4. 딥러닝 역사
인공신경망과 딥러닝
- 일반 신경망
- 데이터에서 직접 특징(handcrafted feature) 추출하여 특징 벡터(feature vector) 으로 입력 ➡️ 특징 벡터들의 품질에 영향을 받음
- 딥러닝 신경망
- 특징 추출 및 학습을 같이 수행 ➡️ 데이터의 특징을 학습으로 추출해 성능 달성
- 특징이 중요하면 높은 가중치, 그렇지 않으면 낮은 가중치 부여
- 차이점
- 특징 추출과정 포함 여부
- 일반 신경망의 경우 특징에 대해 사람이 개입해야하지만, 딥러닝 신경망의 경우 개입이 없어 편견, 편향이 적음 + 추론 시간과 성능도 높아짐
- 딥러닝 특징
- 높은 성능 및 확장성 : 이미지 처리, 자연어 처리, 음성 인식 등의 분야에서 발전이 이뤄짐
- 딥러닝 모델의 경우, 필요한 parameter 수가 많아 더 많은 학습 데이터 필요
- 최적 모델 및 훈련을 위해서는 많은 시간 및 비용이 소요됨
Q. 딥러닝 신경망의 문제점?
A. 많은 학습 데이터를 필요로 함, 기울기 소멸 문제, 과적합 등의 문제
기울기 소멸 문제(Vanishing Gradient Problem)
-
은닉층 수가 많을수록 더 복잡한 문제 해결은 가능함
-
그러나, 너무 deep할 경우, 미분이 불가능해지고 0으로 수렴되는 문제가 발생함
-
발생 사례
-
sigmoid
-
hyper tangent
-
활성화 함수
- 가중치를 찾는데 적합한 통계적인 함수이며, 효과적인 다층신경망의 활성화 함수를 찾기 위해 연구가 많이 되고 있음
-
해결 방법
- ReLU(Rectified Linear Unit) 사용
- 비선형 구조
- ELU 활성화 함수도 사용
- ReLU를 개선한 함수
과적합(Overfitting)
- 모델이 학습 데이터에 지나치게 맞춰진 상태
- 즉, 비학습 데이터에 대한 성능 저하 발생
- ↔️ underfitting : 모델이 작거나, 단순하여 데이터를 잘 표현하지 못함(모델 크기 증가 또는 다른 좋은 모델로 변경해야 함)
- 이미지 출처 : IT위치-부적합 문제
딥러닝의 발전
딥러닝 프레임워크
- TensorFlow
- 구글 플랫폼
- 파이썬, C++ API 기본 제공
- JS, Java, Go, Swift 등 다양한 언어 지원
- Keras
- 고수준 신경망 API
- 파이썬으로 작성
- TensorFlow, CNTK, Theano와 혼용 가능
- 사용핮 친화성, 모듈성, 확장성으로 빠르게 프로토타이핑이 가능한 특징이 있음
- PyTorch
- 페이스북이 초기 Lua로 개발된 Torch를 파이썬 버전으로 개발한 것
- GPU를 이용한 텐서 조작, 동적 신경망 구축이 가능하도록 딥러닝 프레임워크로 발전시킨 경우임
- 유연성 유지 및 가속화된 계산 속도를 제공하는 특징이 있음
학습 기법
3-5. 마무리하며
Q. 초기 인공신경망 퍼셉트론과 현재 딥러닝의 공통점 및 차이점
-
공통점
- 자기 학습
- 유사한 신경망 구조 사용
- 역전파 알고리즘 사용
- 활성화 함수를 이용한 신경망의 비선형성 도입
-
차이점
- 네트워크 layer
- 학습력 및 표현력
- 활성화 함수의 다양성: 퍼셉트론은 단일 계단 함수, 딥러닝은 여러 개의 비선형 활성화 함수 사용
즉, 스스로 학습한다는 공통점이 있으나, 퍼셉트론에 비해 딥러닝은 규모가 크고 확장성이 넓음