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) : 뉴런이 모인 단위
    • multi layer 가능
  • 신경망 계층 예시) 입력층(input layer) - 은닉층(hidden layer) - 출력층(output layer)

Q. 인공신경망과 실제 신경망의 차이?

A. 인공 신경망의 경우, layer 단위로 쌓이지만 실제 신경망의 경우, 다소 비정형적이고 비계층적으로 연결될 수 있음



3-3. 인공신경망 역사


최초의 인공신경망



퍼셉트론(Perceptron)

  • 이미지 출처 : Coursera Neural Networks for Machine Learning Week2 - Perceptron
  • 기존 : 학습 과정이 없어 문제에 따라 신경망 구조를 계속 교체해야 하는 문제가 있었음
  • 프랭크 로젠블랫(Frank Rosenblatt)이 개발
    • 헵 가설
    • 인공신경망의 문제에 따라 Self-Learning 및 학습 퍼셉트론 개발

  • 퍼셉트론 처리 과정 vs 뉴런 신호 전달
분류퍼셉트론생체신경망
입력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. 딥러닝 역사

인공신경망과 딥러닝

  • 일반적인 인공신경망 : 은닉층이 소수
  • 딥러닝 : 은닉층이 다수 포함된 심층신경망(depp neural network) 형태
  • 이미지 출처 : What are the limits of deep learning?

  • 일반 신경망
    • 데이터에서 직접 특징(handcrafted feature) 추출하여 특징 벡터(feature vector) 으로 입력 ➡️ 특징 벡터들의 품질에 영향을 받음
  • 딥러닝 신경망
    • 특징 추출 및 학습을 같이 수행 ➡️ 데이터의 특징을 학습으로 추출해 성능 달성
    • 특징이 중요하면 높은 가중치, 그렇지 않으면 낮은 가중치 부여
  • 차이점
    • 특징 추출과정 포함 여부
    • 일반 신경망의 경우 특징에 대해 사람이 개입해야하지만, 딥러닝 신경망의 경우 개입이 없어 편견, 편향이 적음 + 추론 시간과 성능도 높아짐
  • 딥러닝 특징
    • 높은 성능 및 확장성 : 이미지 처리, 자연어 처리, 음성 인식 등의 분야에서 발전이 이뤄짐
    • 딥러닝 모델의 경우, 필요한 parameter 수가 많아 더 많은 학습 데이터 필요
    • 최적 모델 및 훈련을 위해서는 많은 시간 및 비용이 소요됨

Q. 딥러닝 신경망의 문제점?

A. 많은 학습 데이터를 필요로 함, 기울기 소멸 문제, 과적합 등의 문제


기울기 소멸 문제(Vanishing Gradient Problem)

  • 은닉층 수가 많을수록 더 복잡한 문제 해결은 가능함

  • 그러나, 너무 deep할 경우, 미분이 불가능해지고 0으로 수렴되는 문제가 발생함

  • 발생 사례

    • sigmoid

    • hyper tangent

  • 활성화 함수

    • 가중치를 찾는데 적합한 통계적인 함수이며, 효과적인 다층신경망의 활성화 함수를 찾기 위해 연구가 많이 되고 있음
  • 해결 방법

    • ReLU(Rectified Linear Unit) 사용
      • 비선형 구조
    • ELU 활성화 함수도 사용
      • ReLU를 개선한 함수


과적합(Overfitting)

  • 모델이 학습 데이터에 지나치게 맞춰진 상태
  • 즉, 비학습 데이터에 대한 성능 저하 발생
    • ↔️ underfitting : 모델이 작거나, 단순하여 데이터를 잘 표현하지 못함(모델 크기 증가 또는 다른 좋은 모델로 변경해야 함)
    • 이미지 출처 : IT위치-부적합 문제

  • 과적합 해결 방법

  • 규제화(Regularization)

    • 큰 가중치 값에 큰 규제를 가하는 방식
    • 규제 강도를 정할 수 있는 적절한 가중치를 찾아야 함
  • 드롭아웃(Dropout)

    • 노드를 일정한 확률로 무작위 선택
    • 즉, 연결되어 있던 가중치 연결선이 없는 것으로 간주됨
  • 배치 정규화(Batch Normalization)

    • 모델 입력 샘플을 균일하게 만듦
    • 미니 배치 단위(평균 0, 표준편차 1로 정규화)
  • 이미지 출처 : Deep Learning (5) _ Practical Aspect, Deep Learning: Batch Normalization


딥러닝의 발전

딥러닝 프레임워크

  • TensorFlow
    • 구글 플랫폼
    • 파이썬, C++ API 기본 제공
    • JS, Java, Go, Swift 등 다양한 언어 지원
  • Keras
    • 고수준 신경망 API
    • 파이썬으로 작성
    • TensorFlow, CNTK, Theano와 혼용 가능
    • 사용핮 친화성, 모듈성, 확장성으로 빠르게 프로토타이핑이 가능한 특징이 있음
  • PyTorch
    • 페이스북이 초기 Lua로 개발된 Torch를 파이썬 버전으로 개발한 것
    • GPU를 이용한 텐서 조작, 동적 신경망 구축이 가능하도록 딥러닝 프레임워크로 발전시킨 경우임
    • 유연성 유지 및 가속화된 계산 속도를 제공하는 특징이 있음

학습 기법

  • 전이 학습(transfer learning)

    • 대용량 데이터로 사전 학습된 모델 ➡️ 훈련 시간 및 비용 감소
  • 자기지도학습(self-supervised learing)

    • 레이블이 없는 데이터 ➡️ 스스로 학습
  • 메타 학습(meta learning)

    • 학습 방식을 학습(learn to learn)
    • 인간처럼 적은 데이터로 ➡️ 빠른 학습
  • 설명가능한 인공지능(XAI)

    • 신경망 모델 내부 또는 동작 원리 파악이 가능함
  • NAS

    • 최적 딥러닝 모델 자동 서치
  • AutoML

    • 강화학습 방식 ➡️ 최적 딥러닝 모델 생성

3-5. 마무리하며


Q. 초기 인공신경망 퍼셉트론과 현재 딥러닝의 공통점 및 차이점

  • 공통점

    • 자기 학습
    • 유사한 신경망 구조 사용
    • 역전파 알고리즘 사용
    • 활성화 함수를 이용한 신경망의 비선형성 도입
  • 차이점

    • 네트워크 layer
    • 학습력 및 표현력
    • 활성화 함수의 다양성: 퍼셉트론은 단일 계단 함수, 딥러닝은 여러 개의 비선형 활성화 함수 사용

즉, 스스로 학습한다는 공통점이 있으나, 퍼셉트론에 비해 딥러닝은 규모가 크고 확장성이 넓음

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글