시작하기 전에
머신러닝과 딥러닝은 요즘 핫한 AI에 대해서 이야기할때 당연하게 딸려오는 이야기이다.
머신러닝과 딥러닝이 무엇일까?
딥러닝을 활용한 서비스를 만들게 된 김에 해당 개념에 대해서 정리해보고자 한다.
AI
AI는 말그대로 인공지능이다.
인간의 뇌, 신경망을 통해 기계에 학습시켜 인간만큼은 아니지만 그만큼의 기능을 구현할 수 있도록 하는 것이다.
내가 참고한 영상의 정의를 인용하자면
"빅데이터와 발전된 컴퓨팅 파워를 기반으로 알려진 학습기술을 통해, 기계의 스스로 학습
그리고 그 학습 결과가 인간에게 이롭게 사용될 수 있는 기술" 이다.
AI는 narrow AI와 general AI로 나뉜다.
general AI는 인간이 할 수 있는 모든 것을 할 수 있는, 우리가 영화에서 흔히 볼 수 있는 로봇? 그런 AI이다.
그에 반해 narrow AI는 하나의 기능에 특화되어 그 기능을 실현할 수 있는 AI이다.
머신 러닝(기계학습)
이 AI들에게 인간이 해야하는 일들을 하게 하려면 교육을 시켜야 하고 이 수단이 바로 머신러닝이다.
여기서 사람에 의해 학습된 것이 아니라, 기계 스스로 학습하는 것만이 머신러닝이다.
스스로 학습이라는게 진짜 스스로 공부하는 것이 아니라,
사람이 데이터를 넣기만 하고 그를 통해 데이터를 쌓고 분석을 하며 판단할 수 있는 지점에 이르는 것이다.
머신러닝은 AI를 달성하기 위한 수단이다.
그리고 머신러닝의 수단에는 크게 supervised learning 과 unsupervised learning으로 나뉜다.
supervised learning
우리는 특정 단어에 대한 라벨들 즉, 그 단어를 특정할 수 있는 특징들에 대해서 기계에게 교육시키고 다양한 이미지를 보여준다.
이를 통해 기계는 확률적으로 그 특정단어가 무엇인지를 파악하게 되는 것이다.
대표적으로 음악 추천 시스템이 있다. 평소에 내가 듣는 음악들을 하나의 라벨로 인식해서,
음악을 듣는 유저가 어떤 음악을 좋아할지 확률적으로 판단하는 것이다.
해답과 데이터를 넣어서 규칙을 찾아내는 것이 머신러닝에서 supervised learning 인 것이다.
unsupervised learning
반대로 unsupervised learning은 위와 달리 라벨을 주는 것이 아니라, 특정 단어를 보여주는 이미지만 주입시킨다.
이 이미지를 처리하면서 기계는 이 단어에 대해 판단할 수 있게 된다.
이는 바로 이야기 하게 될 딥러닝의 기반이 된다고 볼 수 있다.
사람이 사물을 인지하고 학습을 하는 방식과 동일한 것이 이 unsupervised learning이다.
이 방법은 위와는 다르게 자율학습이다. 즉 해답없이 데이터만으로 규칙을 찾아내는 것이다. 라벨링이 되어있지 않은 무작위의 데이터들을 그룹핑해서 규칙을 찾아내는 것이다.
딥러닝
딥러닝은 머신러닝의 수단 중 하나이다. 그러나 이 딥러닝이 높은 정확도로 엄청난 자리매김을 하면서,
최근에는 머신러닝을 위한 수단으로 딥러닝을 이야기하곤 한다.
딥러닝은 neural network, 즉 인간의 신경망을 토대로 학습방법을 구축한다.
즉 우리의 뇌처럼 작동하는 알고리즘이란 의미이다.
인간이 학습하는 방법을 토대로 기계도 학습하도록 하는 것이며, 위에서 언급한 unsupervised learning과 같은 방법이다.
가령 인간이 처음 어떤 단어를 학습할 때, 라벨링을 받아서 특징을 외우는 것이 아니라 수많은 이미지와 반복 학습으로 그 단어를 인지하게 되는 것을 생각해보면 된다.
초반에는 XOR 문제, 그리고 다양한 에러 사항으로 답을 찾지 못하던 상황에서, 현대 사회에서의 컴퓨팅 발전과 수많은 데이터를 통해 좀 더 깊고 정확한 기계학습이 가능해 진것이다. 이렇게 딥러닝이 등장한 것이다.
다양한 딥러닝 방법이 나오면서, 하나의 큰 카테고리화가 된것이다.
딥러닝 분야에는 크게 두 가지로 나눌 수 있다.
1. 자연어처리(Natural Language Processing)
: 한국어의 자연어 처리는 굉장히 어렵다. 의미를 가지는 최소단위인 형태소 분리가 다른 언어들 보다 힘들기 때문인 것
👉 응용분야 : 음성인식 AI ( 카카오미니, 기가지니 ..), 자동번역, 최근 유행하는 GPT3
2. 이미지처리(Image Processing)
: 이미지 처리는 자율주행, 스노우카메라 등 일상에서 접할 수 있는 곳이 많다.
왜 딥러닝에 파이썬이 주로 사용될까?
1. 직관적이고 간결하여 초보자 뿐만 아니라 모든 사람이 사용가능
2. 많은 내장/외장 라이브러리 제공
-> 특히 Numpy
파이썬에는 배열을 담을 수 있는 라이브러리를 따로 제공하지 않습니다. Numpy는 배열을 통해 계산, 연산 등을 도와주며 필수 라이브러리입니다. (참고로, 사전과제에 사용한 아나콘다를 만든 사람이 Numpy를 만들었습니다)
딥러닝에서는 데이터를 분류(classification) 하는 것이 핵심이다.
1. or 모델 : input 값중 한개만 true여도 결과값이 true
2. and 모델 : input 값 중 두개가 true여야 결과값이 true
이를 바탕으로 한 것이 XOR 모델이며, 이렇게 단순히 직선으로 분류 하는 것은 정확하지 않으므로,
인간의 뇌와 같이 여러 층을 가진 구조로 여러개의 선으로 다양한 기울기를 가진 곡선으로 분류를 해야 한다는 개념이 등장했다.
loss function 은 현재의 결과값에서 정확한 목표 점수에 도달하기 위해 필요한 점수 즉, 목표치 이다.
loss function을 줄이기 위해 optimizer을 활용한다. 이 optimizer은 back propagation을 통해 데이터를 조정해서 loss function을 점점 줄여 보는 것이다.
실제로 데이터를 넣은 후에 나온 결과값과 실제 목표 값을 분석하고 그 차이점을 측정 한것을 loss function 이라고 할 수 있다.
마치며
인공지능의 종류는
약인공지능 : 인간보다 조금 약한 지능을 가지고, 인간의 생활을 좀 더 편하게 하는 인공지능이다. 지금까지 나온 인공지능이
대부분 약인공지능이다.
강인공지능 : 영화에서 흔히 볼 수 있는 인공지능이다. 즉 인간만큼의 지능을 가진 인공지능이다.
초 인공지능 : 기계가 모든면에서 인간을 초월하는 단계이다. 이 단계에서 인공지능이 자기 학습의 속도에
가속도를 붙이게 된다면, 상상으로만 이루어 지는 기계에 지배를 받을 수도 있는 시대가 오는 것이다.
그러다가 단일 인공지능이 인간의 모든 지능을 초월하게 될때 특이점이 온다고 말한다.
참고
www.youtube.com/watch?v=arbbhHyRP9
www.youtube.com/watch?v=xPpmxNPyznY
www.youtube.com/watch?v=C2sqt9pG6K0
'Data' 카테고리의 다른 글
[Intro]딥러닝_기본적인 기능(동영상 처리) (0) | 2020.11.26 |
---|---|
딥러닝 이미지 처리_투명도/ 이미지 합성 (0) | 2020.11.26 |
open cv module 에러 (0) | 2020.11.26 |
[개인공부필기]딥러닝 이해하기_CNN모델 (0) | 2020.11.11 |
딥러닝 이미지처리_패키지 설치 (2) | 2020.11.07 |