티스토리 뷰
본 내용은 Do it! 정직하게 코딩하며 배우는 딥러닝 입문 - 박해선 저자님의 책을 읽고 공부를 목적으로 작성한 글입니다.
본격적인 딥러닝 공부에 앞서 각 용어들의 간단한 의미 파악을 위한 개요
인공지능-AI(Artificial Intelligence)
단어의 조합에서도 알 수 있듯이 만들어진 지능이라는 의미로 '사람의 지능을 만들기 위한 시스템이나 프로그램'이다.
이 인공지능은 크게 둘로 나눌 수 있다.
strong AI & weak AI
strong AI는 사람과 구분이 안 될 정도로 강한 성능을 가진 인공지능으로, 예를 들어 '아이언맨'의 '자비스'가 있다. 전공자가 아닌 사람들은 보통 이러한 인공지능을 생각하지만, 사실 현재 전공자들이 연구하고 사용하는 인공지능은 weak AI이며, strong AI를 만들 수 있는 방법에 대해 아는 사람은 아무도 없다고 한다.
weak AI란 특정 영역에서 작업을 수행하는 인공지능을 말한다. 보통 우리의 생활을 보조하는 기술로써 Tesla의 자율 주행 자동차나 Siri, 빅스비 등이 해당된다. 그냥 지금 사용하는 인공지능은 모두 weak AI에 해당된다.
머신러닝과 딥러닝은 인공지능의 범주에 속하며 포함 관계는 다음과 같다.
보통 초심자나 학부생이 인공지능을 공부한다고 하면 머신러닝(Machine Learning)을 공부하는 것이고, 머신러닝의 여러 알고리즘 중 인공신경망(artificial neural network)을 이용하는 것이 딥러닝(Deep Learning)이다.
잊지 말아야 할 점은 인공지능이란 것이 우리의 환상 속 엄청난 것이 아니라 결국 사람이 만들어 낸 프로그램이라는 점이다. 특별한 분야에서 어떤 문제를 해결하는 데 있어서 사람보다 월등한 면을 보여주지만, 모든 것을 만능으로 수행하능 인공지능은 있을 수 없고, 어떤 면은 꼭 사람이 필요하다는 것이다. 이는 학교 교수님께서도 강조하시는 점인데 이 책에서도 언급해 주고 있다.
머신러닝-ML(Machine Learning)
어원 그대로 '기계 학습'이라는 기술은 기계가 학습한다는 의미다. 제대로 의미를 파악하기 위해서는 다음 4가지 용어를 알아야 한다.
- 학습
- 훈련
- 규칙
- 모델
학습
데이터의 규칙을 컴퓨터 스스로 찾아내거나 수정하는 것
지도 학습(supervised learning), 비지도 학습(unsupervised learning), 강화 학습(reinforcement learning)
지도 학습(supervised learning)은 입력과 타깃으로 모델을 훈련시킨다. 여기서 입력은 모델이 풀어야 할 일종의 문제같은 것이고, 타깃은 모델이 맞춰야할 정답같은 것이다. 즉, 모델을 훈련시키기 위해 사용하는 데이터인 훈련데이터가 입력과 타깃으로 구성되어 문제에 대한 답을 주는 방법으로 모델을 훈련시킨다.
따라서 입력과 그에 대한 정답이 이미 있는 데이터를 사용해 주로 내일의 날씨를 예측하거나 스팸 이메일을 분류하는 등의 일을 해결할 때 유용할 수 있다.
지도 학습에서 가장 중요한 부분은 훈련 데이터를 만드는 것이다. 좋은 훈련 데이터가 많아야 모델을 잘 훈련시킬 수 있다.
비지도 학습(unsupervised learning)은 타깃이 없는 훈련 데이터를 사용한다. 대표적인 예가 군집(clustering)이다. 그룹을 만들기 전까지는 어떤 그룹이 존재하는지 또 몇 개의 그룹이 만들어질지 알 수 없다.
때문에 모델의 훈련 결과를 평가하기 어렵다는 특징이 있다.
강화 학습(reinforcement learning)은 머신러닝 알고리즘으로 에이전트라는 것을 훈련시킨다.
여기서 에이전트란 배송 서비스를 수행하는 드론이나 비디오 게임에서 슈퍼 마리오를 예로 들 수 있다. 실세계에서는 바로 자기 자신이 에이전트라 할 수 있다. (참조 : pathmind)
이 에이전트는 특정 환경에 최적화된 행동을 수행하고 수행에 대한 보상과 현재 상태를 받는다. 최대한 많은 보상을 받는 것이 목표로, 에이전트는 주어진 환경에서 아주 많은 행동을 수행하면서 학습된다. 예로 '딥마인드(DeepMind)'의 '알파고(Alphago)'가 있다.
훈련
규칙을 찾아 수정하는 과정
규칙
모델 식에서 가중치와 절편
1.5x + 0.1 = y (y가 1 이상이면 다음 날 비가 온다고 예측)
위 식은 훈련 데이터와 규칙의 관계를 수학적 모델링한 결과다. x는 입력, y는 타깃이며 1.5가 가중치, 0.1이 절편이다. 즉, 입력과 곱하는 수 = 가중치, 더하는 수 = 절편이며 이 둘이 머신러닝에서의 규칙이다.
모델
훈련 데이터로 학습된 머신러닝 알고리즘으로 보통 수학식으로 표현된다.
그리고 앞서 언급했던 가중치와 절편을 합쳐 모델 파라미터라고도 부른다.
위 4가지 용어에 추가적으로 손실 함수(loss function)도 알아야 한다.
손실 함수(loss function)
모델의 규칙을 수정하는 기준이 되는 함수
만약 어떠한 모델에 새로운 훈련 데이터가 들어왔는데, 입력에 대한 모델이 예측한 출력 값이 실제 타깃 값과 다른 경우가 발생했다. 이런 경우에 모델의 규칙을 수정해야 하는데, 모델이 예측한 값과 타깃값의 차이를 계산하는 함수를 손실 함수로 정의를 한다.
이때 손실 함수의 최솟값을 효율적으로 찾는 방법이 최적화 알고리즘이다.
딥러닝-DL(Deep Learning)
머신러닝 알고리즘 중 하나인 인공신경망(artificial neural network)으로 만든 것
복잡한 문제를 해결하기 위해 인공신경망을 다양하게 쌓은 것이 딥러닝이다.
위 그림에서 처럼 인공신경망 여러 개가 곂곂이 쌓인 것이 딥러닝 모델이다. 요즘은 둘을 거의 동일한 의미로 부르기도 한다.
머신러닝과의 가장 큰 차이점은 처리하는 데이터가 있는데, 머신러닝이 잘 처리하는 데이터들은 데이터베이스, 레코드 파일, 엑셀 파일 등의 정형 데이터이고, 딥러닝이 잘 처리하는 데이터들은 이미지, 영상, 음성, 택스트, 소리 등의 비정형 데이터들이다. 따라서 보통 인지와 관련된 문제를 잘 해결한다.
'머신러닝&딥러닝 공부' 카테고리의 다른 글
[딥러닝 입문] 손실 함수와 경사 하강법, 선형 회귀 뉴런 구현 (0) | 2020.01.06 |
---|---|
[딥러닝 입문] 선형 회귀와 경사 하강법 개요 (0) | 2020.01.06 |
- Total
- Today
- Yesterday
- JPA
- git branch
- git
- Spring Boot
- spring mvc
- 스프링
- 스프링 mvc
- 선형 회귀
- Thymeleaf
- 쉽게 배우는 운영체제
- 스프링 테스트
- Spring Data JPA
- 파이썬 for Beginner 연습문제
- 파이썬 for Beginner 솔루션
- 생활코딩 javascript
- git merge
- Python Cookbook
- 패킷 스위칭
- 스프링 컨테이너
- 운영체제 반효경
- jsp
- Spring
- 프로그래머스
- 김영환
- Computer_Networking_A_Top-Down_Approach
- Do it! 정직하게 코딩하며 배우는 딥러닝 입문
- 방명록 프로젝트
- Gradle
- 쉘 코드
- 지옥에서 온 git
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |