[Data Science] 딥러닝

김수민·2024년 4월 5일

DataScience

목록 보기
1/3

딥러닝 개념

1. 딥러닝의 시작

  • 기계가 인간의 일을 대신해 문제를 해결하고자 하는 것이 시작
  • 기계가 인간을 닮을 수 있도록, 인간의 뇌를 분석하여 뉴런을 분석
  • 어떠한 input에 대해, 어떠한 가중치(weight)가 곱해지고 bias가 더해지며 다음으로 전달됨을 발견
  • 이러한 값이 일정 값 이상이 되면, 활성화가 됨을 발견하여 이러한 학습 방식을 기계에 도입(1957, Frank Rosenblatt)

  • 초기 딥러닝 모델로, AND 연산과 OR 연산을 선형으로 분리 성공
  • 하지만, XOR 문제에서 선형으로 분리할 수 없는 한계 발생

2. 퍼셉트론(Perceptron)

  • Marvin Minsky에 의해 MLP(Multi Layer Perceptron)을 통해 다 층의 레이어로 이론상 XOR 문제 해결이 가능함을 주장(1969)
  • 하지만, 다 층의 레이어들에 대한 weight와 bias를 구하는 데 한계 발생

3. Backpropagtion(역전파)

  • 1986년에야 Hinton에 의해 이러한 한계가 Backpropagation 알고리즘에 의해 해결
  • 예측된 결과로부터 에러를 구해 뒤로 전달해나가며 각각의 weight와 bias를 조정

4. Convolution Neural Networks

  • 라쿤이라는 교수가 다른 방법으로 접근
  • 고양이를 통해 그림 모양에 따라 일부의 뉴런만이 활성화되는 것을 발견
  • 즉, 특정 역할을 담당하는 신경망이 있고, 이들의 조합으로 식별함을 인식
  • 이를 통해, Convolution Neural Network를 개발
  • 데이터를 일부분 씩 잘라 다음 레이어로 보내 나중에 합치는 방식으로 수행

5. 또다른 한계 발생

  • Backpropagation 알고리즘이 몇 개 정도의 Layer에서는 잘 작동하지만, 실제에서 발생하는 복잡한 문제들이 10개 이상의 Layer를 가짐
  • Layer를 지나면 지날수록 weight의 의미가 약해져 성능이 떨어지는 문제 발생
  • 다른 형태의 간단한 알고리즘(SVM, RandomForest 등)이 성능 ↑

6. 딥 러닝의 출현

  • 2006년에 각 Layer의 weight의 초기값이 잘 주어진다면 학습할 수 있음을 주장
  • 2007년에 주장이 맞음을 확인하였으며, 깊은 신경망을 구축한다면 복잡한 문제를 풀 수 있음을 발견
  • 이 때, Neural Net에서 Deep Learning으로 명칭 변경
  • ImageNet 챌린지 등이 진행되며 관심을 받기 시작하여, 26% 에러율에서 2015년엔 5% 미만으로 기계가 인간을 뛰어넘음
  • 한걸음 더 나아가, 사진을 본 뒤 사진을 설명하는 자연어 생성 기술까지 구현

파이토치(Pytorch)

실습 코드

https://colab.research.google.com/drive/14WwqnuCgZP1C1HLEkV46mxhGZaqH8Aza?usp=sharing
(출처 : https://youtu.be/k60oT_8lyFw?feature=shared)

0개의 댓글