해당 포스트는 책 “골빈해커의 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\) 커뮤니티
- 실무에 적용했을 때 생기는 문제점들을 커뮤니티를 통해 해결할 수 있음
- 라이브러리 자체의 버그가 얼마나 빠르게 수정되고 있음
댓글남기기