# 여는글
여러분들은 머신러닝 또는 딥러닝이란 말을 들으면 무슨 생각이 드시나요?
저는 처음 머신러닝을 들었을 때는
막연히 어렵다는 생각과 엄청 복잡한 수학 알고리즘을 사용하는 학문이라 생각하여
시도해보기도 전에 겁을 먹었습니다.
그런 제가 이번에 딥러닝을 공부하게 되었습니다.
그 공부 내용을 여기에 옮겨보도록하겠습니다.
# AI(Artificial Intelligence)란?
시작부터 뭔가 어려운 말이 등장했습니다.
Artificial Intelligence, 즉 직역하면 인공지능이란 말 입니다.
속칭 AI라는 용어로 자주 쓰이는 말 입니다.
(게임을 하다보면 자주 들어보셨을 겁니다.)
AI는 추론(Reasoning)의 3대 요소를 인위적으로 만든것으로
기계를 인간 행동의 지식에서와 같이 행동하도록 만드는것 입니다.
잘 이해가 안되겠죠?
즉 간단히 말하면, 인간이 기계에게 인공적으로 사람의 행동과 지식을 입력해
기계가 행동하는 것을 AI라고 합니다.
이 AI는 강 인공지능과 약 인공지능이란게 존재합니다.
아래 표를 보도록 하죠
강 인공지능(Strong AI) |
약 인공지능(Weak AI) |
다양한 분야에서 보편적으로 활용 |
특정 분야에서만 활용가능 |
알고리즘을 설계하면 AI가 스스로 데이터를 찾아 학습 |
알고리즘은 물론 기초 데이터, 규칙을 입력해야함 |
정해진 규칙을 벗어나 능동적으로 학습해 새로운 알고리즘을 창도하는 것이 가능 |
주어진 데이터, 규칙을 바탕으로 학습하며, 규칙을 벗어난 새로운 알고리즘의 창조는 불가능 |
예를 들어 볼까요?
강 인공지능은 터미너이터같은 다양한 분야에서 기계 혼자 생각하고 학습하는것을 말하며,
약 인공지능은 알파고같이 개발자가 학습 데이터를 입력해 줘야하는것을 말합니다.
자 AI가 뭔지 아시겠나요?
뭔가 뜬구름 잡는 이야기 같다면 맞습니다.
이 AI는 머신러닝과 딥러닝을 아우르는 말이기 때문이죠.
그럼 좀 더 자세히 알아볼까요?
# ML(Machine Learning)이란?
제가 위에서 AI는 머신러닝과 딥러닝을 포괄하는 용어라고 하였죠?
위 사진을 보면 인공지능(AI)이 머신러닝을 감싸고 머신러닝이 딥러닝을 감싸고 있습니다.
그럼 차례대로 한번 파 볼까요?
먼저 머신러닝(Machine Learning)이란,
인공지능(AI)의 한 분야로, 명시적으로 프로그래밍 하지 않고,
데이터로부터 학습을 하는 기능을 제공하는 분야입니다.
즉, 데이터를 제공해주면 컴퓨터는 그 데이터를 통해
스스로 학습하는 것 처럼 하는 기술입니다.
자 그럼 위 말에는 하나의 흠이 있습니다.
바로 제가 "스스로 학습하는 것 처럼" 이라고 했습니다.
스스로 학습하면 학습하는거시 학습하는 것 처럼은 무슨 말이냐?!
라고 하실수 있겠지만.
아직 머신러닝은 스스로 학습할 수 있는 단계가 되지 않았습니다.
계산기가 스스로 계산을 못하듯이,
머신러닝 또한 데이터를 넣어주고 학습 알고리즘을 만들어주는등 사람의 손이 필요하죠.
# DL(Deap Learning)
자 딥 러닝(Deap Learning), 요새 뜨는 핫 트렌드 단어입니다.
딥러닝은 multiple hidden layer를 갖는 ANN이라고 간략하게 소개할 수 있습니다.
뭔가 말이 어렵다구요??
간단히 말하면
머신러닝에서 결과를 도출하는 알고리즘을 구성하는 과정이라고 생각하세요
위의 그림처럼 데이터를 받아오는 input layer와
결과를 도출하는 hidden layer들이 다중으로 존재하고
결과를 도출하는 output layer가 존재합니다.
이것을 딥러닝이라고 합니다.
이것을 사용하면 기계가 데이터를 가지고 학습하고,
학습한 데이터에 따라 행동할 수 있습니다.
그렇다면 딥러닝이 만능일까요?
그것은 아닙니다.
딥러닝이 만능이 아니라고 말하는 이유는 다음과 같습니다.
1. 이론적인 뒷받침의 부재
- 경사 하강법(Gradient descent)를 제외한 다른 알고리즘들이
이론적으로 명확히 증명되지 않고, 경험적으로 사용되어 집니다.
- Watson과 같은 AI시스템은 DL뿐 아니라 다양한 기술을 앙상블하여 이용합니다.
2. 딥러닝은 결과를 내놓은 과정을 스스로 설명해 주지 않는다.
- 이는 어떤 결과를 내놓았을 때, 이를 기계든 사람이든 설명할 수 없으며 (추측만이 가능할 지언정), 이는 법률적 책임을 누구에게 부과할지 모호해 질 수 밖에 없습니다.
등 다양한 단점이 있지만,
그럼에도 딥러닝을 이용하는 이유는 그 만큼 미래가 있기 때문일 겁니다.
# 정리글
자 오늘 우리는 인공지능, 머신러닝, 딥러닝에 대해서 간략하게 살펴보았습니다.
생각보도 많은것을 했는데요....
이것을 기억해야되냐구요??
아니요! 그냥 훑어보기만 하셔도 됩니다.
앞으로 더 더럽고 어려운 것을 보게된건데
여기서 진을 빼면 안되죠....
ㅠㅅㅜ
여튼! 앞으로 제가 공부하는 것들을 정리후 비 정기적으로 올리겠습니다.
많이 봐주셨으면 좋겠습니다.
감사합니다.
# 마무리
위 포스트는 제가 직접 제작한 것 입니다.
그렇기 때문에 틀린점이나 설명이 엉성한 점이 존재할 수 있습니다.
만약 틀린점이나 설명이 엉성한 부분이 존재하면 댓글로 알려주세요.
빠른 처리 하도록 하겠습니다.
티스토리 앱으로는 댓글 이용이 불가능 하므로 웹 브라우저로 봐 주세요
(URL : http://junprogramer.tistory.com/)
읽어주셔서 감사합니다.
'잡다한 기술' 카테고리의 다른 글
[Python] 윈도우에서 형태소 분석기(KoNLPy)설치하기 (0) | 2018.12.20 |
---|---|
[node.js] es8 async/await 사용하기 (0) | 2018.11.07 |
[안드로이드/코틀린] 코틀린 프레그먼트 (0) | 2018.11.01 |
[안드로이드] 프래그먼트 작업 (0) | 2018.10.29 |
[Python] 파이썬으로 만든 API에서 파일을 가져오는 방법 (0) | 2018.10.17 |