본문 바로가기
카테고리 없음

정리해본 AI , ML, 딥러닝

by 인디코더 2019. 4. 30.

AI, ML, 딥러닝

1. AI 그리고 ML
우리의 삶에서 언제부터 AI와 머신러닝, 빅데이터가 관심이 많아졌을까요?
제 기억속에서는 15년 군대를 가기전까지만 해도, 코딩이나 빅데이터는 그렇게 인기가 있지는 않았습니다.
하지만, 군대를 다녀오고 나서 보니 제 학과가 정말 인기가 많아졌더라구요 
여담은 뒤로 하고,, 

MachineLearning에 대한 구글에서의 관심도를 아래 그림으로 확인할 수 있습니다. 
ML이라고 하면 보통 R로 할까? 파이썬으로 할까? 관심이 많습니다. 
아래 그래프를 보면 사람들이 어디에 관심을 더 두는지 알 수 있습니다.
하지만, 이 표에는 숨겨진 정보가 있습니다. 
바로, 어떤 기점을 통해서 파이썬에 대한 관심도가 급증했는데,
과연, 그날에는 무엇이 있었을까요?

구글 트랜드

 

바로, 2016년 알파고의 등장입니다.! 

2016년 3월 9일 알파고의 등장!

꽤나 신선한 충격으로 다가왔던 AI...
이때부터, 빅데이터니 머신러닝이니 많은 학문들이 등장했던 기억이 납니다.

AI라는 것은 인간의 사고를 모방하기 위한 인간처럼 사고할 수 있게 연구하는 일종의 학문이라고 말할 수 있습니다.
AI는 큰 개념이니, 좀더 작은 개념인 Machine Learning과 딥러닝에 대해서 좀 더 알아보겠습니다.

AI의 기법 중 MachineLearning!
ML은 컴퓨터가 스스로 학습하여 앞으로의 일을 예측하는 기법 및 기술입니다. 

ML 크게 패턴인식, 이상감지, 예측의 일을 하고 있습니다.
(사람과 비교해봤을 때 사람이 사고하는 것과 유사하다는 점을 알게 느꼈습니다. )

2. ML(Machine Learning) 동작 방식

ML이 어떻게 동작하는지 잠깐 살펴보자면
예를 들어 기계에게 바나나를 보여주면서 "이건 바나나야"하고 알려줍니다. 
그러면 학습을 하고 특징을 찾아냅니다.
학습한 것을 모델로 만들어 두었다가 다른 바나나를 봤을 때, 판단을 해서 바나나를 찾아내게 됩니다. 

기존의 규칙기반 인공지능(그냥 우리가 알고있던 코딩)에서는 특징을 알려주면 답을 말을 할 수 있지만,
새로운 문제가 나타나면 그것에 대한 로직을 작성해주어야 합니다. 
하지만, ML 스스로 특징을 찾아냅니다. (...편집중)

ML특징을 찾아내기 위해서는 조건이 필요한데요,
ML이 학습하기 위해서는 
최소한의 모델을 주어야 합니다.
선형 방정식의 형태?” ,인간의 뇌 구조를 딴 신경망의 형태?” 와 같은 알고리즘이 그러한 모델입니다.
"데이터 + (최소한의)모델 + 훈련 시간 =>  모델" 

이렇게 나온 모델을 가지고 
새로운 데이터에 대한 판단과 예측을 하게 되는 것입니다. 

최소한의 모델들을 학습 방식별로 나누어 모면
아래와 같은 방식들을 사용하게 됩니다.
1. 지도학습 2. 비지도 학습 3. 강화학습.

지도 학습은 (예제를 주고 컴퓨터를 가르치는 학습 기법)
          
일반화 선형모델
          
의사결정트리
          
랜덤포레스트
          
점진적 부스트 머신
등이 있고,

비지도 학습은 (답이 없이 컴퓨터 스스로 데이터를 분류하는 기법)
          
클러스터링
          
비정상탐지
          
자원 축소
등이 있습니다.

강화 학습은
현재의 상태를 '강화' 하는 방법으로 프로그램이 구현되는 기법 입니다.
S
라는 현재 상태에 A 라는 액션을 취했을 때 R 이라는 보상이 주어지고 프로그램은
R 을 최대 값으로 맞추는 방식으로 학습이 진행 됩니다.

 

머신러닝 모델 마인드맵

출처 : https://jixta.wordpress.com/2015/07/17/machine-learning-algorithms-mindmap/

모델 예 : 클러스터링 ,선형 회귀

 

출처: https://bcho.tistory.com/1203 
출처 : https://ko.wikipedia.org/wiki/%EC%84%A0%ED%98%95_%ED%9A%8C%EA%B7%80#/media/File:Normdist_regression.png 

 

=> 데이터의 특성에 따라 달라짐

 

3. 딥러닝이란?

그렇다면 딥러닝은 무엇일까

딥러닝은 인간의 뇌의 동작방식을 착안하여 개발한 학습 방법으로 인공신경망이라고 함.

딥러닝은 머신러닝 모델중 하나이다.

머신러닝의 모델 중 사람의 뇌를 본 뜬 구조가 있는데 인공신경망이라고도 하고 뉴럴 네트워크라고도 함.
굉장히 작은 처리하는 애들(레이어)이 신경망처럼 연결되어 있어서 네트워크가 되어있는 형태,
인공신경망 모델 구조를 써서 머신러닝 하는 걸 딥러닝이라고 함.

  

Neural Network(인공신경망 네트워크)

출처 : https://cyberx.tistory.com/128

3.1. 딥러닝은 언제부터?


인공신경망에 대한 개발은 1940년대에 이미 개발한 방법입니다만,
90년대에 이르러 그 연구가 포화 상태가 되었고, 한계가 보였습니다. 

가장 큰 한계가 바로 최적화가 쉽지 않다는 점 입니다.
예를 들면 수만개의 뉴런들이 수백만개의 선들에 의해 연결되어 있는 데 값이 최적값이 아닌 잘못된 최적값에 도달하게 될 수 있음.("black magic"이라고도 함.)
잘못된 값을 잡게 됨.

이 부분에서 "RBM(제한된 볼트만 머신) 이라는 알고리즘을 적


 
?

1.  GPU 병렬 컴퓨팅의 등장과 학습방법의 진보,
CPU
GPU가 병렬처리가 가능해 질만큼 기술의 발달 CuDA( 효율적으로 이용한 언어구조) 들의 개발,
과거 수 개월이 소요되었던 기계학습 과정은 GPU, 분산처리 환경의 발전 등 월등히 높아진 컴퓨팅 파워 덕분에 이제 단지 수 시간, 혹은 몇 분만에 처리가 가능

2.  크게 3가지로 분류가 가능
1 )
비지도 학습 방법 이용한 전처리  => 사과/ 고양이/ 사람 => 구분(클러스터링)

2 ) convolution
뉴럴 네트워크의 진화
ML
은 데이터에서 특징을 뽑아내고 지식화 시키는 과정에서
특징을 뽑아내는 것이 기계학습의 성능을 좌우함.
CNN
기술이 발달

3 )
시계열 Data를 위한 리커런트 뉴럴네트워크 시간의 흐름에 따라 변하는 DATA처리(주가, 움직임, 비디오)

딥러닝을 가장우월한가?
NO 많은 양의 data와 많은 컴퓨팅 자원이 충족될 때 가장 효과적
핸드폰이나 웨어러블 환경은 no
딥러닝이 아닌 것도 많이 쓰이고 다른 모델의 장단점이 있다.

실시간 => 다른 방식이용.

 

 

ML 에서의 핵심
얼마나 효율성을 높일 수 있느냐와 얼마나 최적화 할 수 있느냐가 관건

) 뭔가 핵심 주제에 대한 자연어 처리 업무를 적은 비용으로 쉽고 처리하느냐
      우버에서 호출을 했을 때 예약 취소가 안날 활률을 계산 해서 얼마나 매칭을 최적화 가능한가
 

그렇다면 왜 텐서플로우냐

1.     머신러닝 중 딥러닝 프로그램을 쉽게 구현
2.     자바, , 파이썬 지원 c++로 작성, 파이썬이 가장 편함
3.     커뮤티니 활발 (토치, 카페, 체이너.. 등 다양한 라이브러리 존재)
4.     클라우드 서비스, 깃 논문구현체도 가장 우선시 됨.

+ 역전파에 대한 개념이 적용? 됨....

 

참조 1: http://slownews.kr/41461
참조 2 : https://www.youtube.com/watch?v=aF03asAmQbY&t=286s
참조 3: https://kofboy2000.tistory.com/10  
참조 4, 5 : 모두의 딥러닝, 3분 딥러닝(도서)

 

반응형