해당 포스트는 책 “골빈해커의 3분 딥러닝 텐서플로맛”의 1장 “딥러닝과 텐서플로의 만남”을 학습하고 내용을 정리한 글입니다.



1.1 인공지능, 머신러닝 그리고 딥러닝

1.1.1 인공지능 vs 머신러닝 vs 딥러닝

1) 인공지능 (Artificial Intelligence)

  • 관념
  • 컴퓨터가 인간의 사고를 모방하는 모든 것

2) 머신러닝 (Machine Learning)

  • 개념
  • 주어진 데이터를 이용하여 컴퓨터가 스스로 학습하는 것

3) 딥러닝 (Deep Learning)

  • 머신러닝을 구현하는 구현하는 기술의 하나
  • 인간 뇌의 동작 방식에 착안하여 개발한 학습 방법
  • 인공신경망 (Artificial Neural Network)

\(\rightarrow\) 인공지능 > 머신러닝 > 딥러닝

1.1.2 규칙기반 인공지능 vs 머신러닝 학습 방법 비교

1) 규칙기반 인공지능 (rule-based AI) 학습 방법

  • 인간이 컴퓨터에게 바나나의 특징(reature) 을 가르쳐줘야 한다.
  • 썰어놓은 바나나를 인식시키기 위해 썰어놓은 바나나의 특징을 알려줘야 한다.

2) 머신러닝 학습 방법

  • 컴퓨터에게 바나나 사진을 입력하고 컴퓨터가 스스로 바나나의 특징을 학습한다.
  • 썰어놓은 바나나의 사진을 입력하면 알아서 새로운 특징을 학습하고 인식한다.

1.1.3 인공신경망이 지금 다시 부상한 이유

1) 빅데이터의 발전

  • 머신러닝은 데이터에서 컴퓨터가 직접 특징을 추출 \(\rightarrow\) 데이터가 많을수록 정확도를 높일 수 있음
  • 인터넷이 폭발적으로 성장 \(\rightarrow\) 많은 양의 데이터를 쉽게 수급할 수 있게 됨 \(\rightarrow\) 데이터 문제 해결

2) GPU와 다양한 알고리즘의 발전

  • 인공신경망은 수백만~수조 개로 이루어진 아주 간단한 수식 계산을 수천 번 이상 해야됨
  • GPU의 병렬처리 능력 활용 및 역전파 등의 알고리즘을 통해 계산량을 많이 줄일 수 있게 됨

인공신경망으로 모든 것을 해결할 수는 없다. 딥러닝에는 매우 많은 데이터가 필요하기 때문이다. 데이터가 적다면 딥러닝이 아닌 다른 머신러닝 알고리즘을 사용하는 것이 좋을 수 있다.



1.2 왜 텐서플로인가?

1.2.1 텐서플로 (TensorFlow)

  • 머신러닝 프로그램, 특히 딥러닝 프로그램을 쉽게 구현할 수 있도록 다양한 기능을 제공해주는 머신러닝 라이브러리
  • 구글에서 만듬
  • 기본적으로 C++로 작성됨
  • 파이썬, 자바, 고(Go) 등 다양한 언어를 지원 (파이썬을 최우선으로 지원)
  • 윈도우, 맥, 리눅스, 안드로이드, iOS, 라즈베리 파이 등 다양한 시스템에서 쉽게 사용할 수 있도록 지원

1.2.2 또 다른 머신러닝/딥러닝을 위한 라이브러리

  • 토치(Torch), 카페(Caffe), MXNet, 체이너(Chainer), CNTK 등

1.2.3 왜 텐서플로를 사용할까?

1) 활발한 커뮤니티의 존재

  • 라이브러리를 선택할 때 가장 중요한 기준 \(\rightarrow\) 커뮤니티
  • 실무에 적용했을 때 생기는 문제점들을 커뮤니티를 통해 해결할 수 있음
  • 라이브러리 자체의 버그가 얼마나 빠르게 수정되고 있음

태그:

카테고리:

업데이트:

댓글남기기