Pytorch로 시작하는 딥러닝

CH1 파이토치로 딥러닝 시작하기

 

인공지능은 새로운 전기다

 

인공지능

인공지능의 역사

앨런 튜닝의 에니그마 머신

심벌릭
인공지능을 하드 코딩 규칙으로 구현한 것
논리적이고 잘 정의된 문제를 해결하는데 적합하지만, 이미지 인식, 객체 검출, 객체 분할, 언어 번역 및 자연어 이해같은 복잡한 문제를 해결할 수 없다.
-> 머신 러닝, 딥러닝과 같은 인공지능에 대한 새로운 접근법이 개발 됨

인공지능, 머신 러닝, 딥러닝의 관계
인공지능 ⊃ 머신 러닝 ⊃ 딥러닝

 

 

머신러닝

인공지능의 하위분야

전통적인 프로그래밍: 데이터+규칙 -> 결과
머신 러닝: 데이터 + 결과 -> 규칙

피처 엔지니어링: 도메인 지식을 활용해 머신 러닝 알고리즘에 적합한 피처가 무엇인지 판단하고 만드는 프로세스
*딥러닝에서는 피처 엔지니어링이 자동화 됨
*도메인 지식: 
*피처: 개별적이고 측정 가능한 속성 (통계학에서는 독립변수)

컴퓨터 비전과 자연어 처리와 같은 분야에서는 수만 차원의 고차원 분석 데이터를 사용하기 때문에 피처 엔지니어링이 어렵다
*예: 244*244*3 이미지 1000장을 분류하는 모델의 차원은 244*244*3*1000

-> 딥러닝에서는 최신 기법과 하드웨어를 사용해 피처 엔지니어링 문제를 해결

 

실생활 머신 러닝 사례

  • 구글의 Deep learning for grouping photo
  • 추천 시스템: 머신 러닝 알고리즘의 한 분류. 넷플릭스, 아마존, 아이튠즈 등 영화, 음악 및 상품 추천

 

 

딥러닝

전통적인 머신 러닝 알고리즘: 피처 추출을 직접 수행한 후 알고리즘을 학습
딥러닝 알고리즘: 최신 기법을 사용해 피처 추출을 자동화

 

딥러닝 애플리케이션

  • 인간 수준의 이미지 분류기
  • 인간 수준의 음성 인식기
  • 기계 번역
  • 자율주행 차량
  • 시리, 구글 보이스, 알렉사 등
  • 일본 농부의 오이 분류기
  • 폐암 탐지기
  • 인간 수준보다 높은 언어 번역기

 

딥러닝의 역사

기술 연도
신경망 1943
역전파 1960대 초반
컨볼루션 신경망 1979
순환 신경망 1980
LSTM 1997

신경망은 흔히 인간의 두뇌에서 영감을 받은 알고리즘으로 소개되나 딥러닝은 사실 수학, 통계, 그리고 소프트웨어 공학 이론으로부터 중대한 영향을 받았다.

 

왜 지금인가?

딥러닝이 지금 대세가 된 원인 세가지

  • 하드웨어 가용성
  • 데이터 및 알고리즘
  • 딥러닝 프레임워크

 

하드웨어 가용성

몇 년 간 성능이 발전해온 CPU로도 딥러닝 연산을 수행하기엔 무리가 있다.
GPU는 CPU보다 훨씬 빠르게 행렬 곱과 같은 거대한 수학 연산을 처리할 수 있다.

 

데이터와 알고리즘

인터넷 보급 확대와 스마트폰 사용의 증가로 페이스북 및 구글과 같은 회사에서 다양한 포맷의 데이터를 수집할 수 있게 됨

ImageNet: 컴퓨터 비전 인공지능 알고리즘 성능을 경쟁하는 대회
컴퓨터 비전 분야는 ImageNet이 제공하는 데이터셋을 기반으로 비약적 발전을 이룸

딥러닝 세상을 대표하는 데이터셋

  • MNIST
  • COCO 데이터셋
  • CIFAR
  • Street View House Numbers
  • PASCAL VOC
  • 위키피디아 덤프
  • 20개 뉴스 그룹
  • 캐글

 

딥러닝 프레임워크

딥러닝 프레임워크는 두 가지 용도로 사용될 수 있다.

  • Numpy와 같은 연산을 GPU 가속 연산으로 대체
  • 심층 신경망 구축

파이토치
사용 편리성과 기술 단순성에서 뛰어남.

다른 대다수 프레임워크들이 정적 계산 그래프를 사용하는 반면 파이토치는 동적 계산 그래프를 사용하기 때문에 복잡한 아키텍쳐를 구축할 때 뛰어난 유연성을 제공.
*동적 계산 그래프: 데이터를 흘려보냄으로써 계산 그래프가 정의되는 방식. '데이터 흘려보내기'와 '계산 그래프 구축'이 동시에 이루어진다.

자체 프로그래밍 스타일을 가진 여타 프레임워크들과 달리 파이썬 개념을 광범위하게 사용하고 객체지향 방식으로 프로그래밍이 가능하다.

 

 

요약

  • 인공지능, 머신 러닝 및 딥러닝에 대한 소개
  • 애플리케이션 예시
  • 딥러닝 인기의 이유
  • 파이토치의 전반적인 특징