본문 바로가기
Development/인공지능

기계학습, 인공지능, 딥러닝

by 메정 2021. 9. 7.

1. AI vs ML

AI(Artificial Intelligenece) : a computer program to imitate a part of human intelligenece such as recognition, learning, etc.
-> 인간의 지능 일부를 모방하는 컴퓨터 프로그램

ML(Machine Learning) : a part of AI to solve a specific problem given training data.
-> AI의 한 부분으로, 특정 문제를 해결하기 위한

AI는 학습 데이터가 필요 없지만, ML은 특정 문제를 해결하기 위해 학습 데이터가 필요.

학습 데이터를 통해 문제를 해결 == 기계학습

범주는 ML < AI 다!
ML에는 딥러닝, NN(뉴런 네트워크), SVM, Fuzzy 등이 있다.

Machine Learning 정의

시대 흐름에 따라 정의가 조금씩 변화하였는데,

1959년에는 컴퓨터가 명시적으로 프로그래밍되지 않고 학습할 수 있는 능력을 제공하는 연구 분야로 보았다.
어떻게 학습할지에 대한 세부 내용이 없었고, 로봇팔과 같이 명령에 따라 움직이는 것들 밖에 없었다.

1998년에는 좀 더 어떻게 학습할지에 대해 깊게 들어가는데!
Tom Mithchell 이라는 사람이 정의한 ML은 다음과 같다.

P가 측정한 과제(T)에 대한 성과가 경험(E)으로 향상되는 경우, 일부 과제(T)및 일부 성과(P)에 대해 경험(E)에서 배우는 프로그램

즉 주어진 일(T)과 성과(P)를 통해 경험으로부터 학습(E)하고, 이를 바탕으로 경험이 개선되어야 한다!

ex. 불을 끄는 기계가 있다고 생각해보자.
로봇에게 불을 끄는 일(T)가 주어져야 하고, 불 근처로 가면 불이 있고, 물 근처로 가면 물이 있음(P)을 구분한다.
그리고 불을 실제로 끄는 경험(E)을 통해 성과(P : 물과 불을 구분할 수 있게 됨)가지면서 불을 완벽하게 끌 수 있도록 기계는 학습한다.

처음 불을 끌 땐 못끌테니 바로 불로 가면 -50점, 다음 도전 땐 물로 가서 +100, 물을 가져와 불을 끄면 +1000 이런 식으로 성과(P)를 주어 불을 끄는 경험(E)을 수행. 이러한 경험을 통해 불을 끄는 학습을 진행!

ML에서는 이렇게 경험(E), 일(T), 성과(P)를 명확하게 구분하는 것이 가장 중요!

ML의 종류

ML에는 지도학습, 비지도 학습, 강화학습으로 나눌 수 있다.

  1. 지도학습
    모두 가르쳐야 한다. Yes, No로 답하도록 알려주어 학습시키는 방식
    주로 사용 : regression(회귀 분석), classification(분류), 신경망, 유전자 알고리즘 등
  2. 비지도 학습
    군집화를 통해 새로운 답을 추출하는 방식
    주로 사용 : clustering(주어진 데이터들의 특성을 고려해 데이터 집단을 정의하고 데이터 집단의 대표할 수 있는 대표점을 찾는 것, 데이터 마이닝의 한 방법), outlier detection(데이터 분석 시 희귀 항목, 이벤트 또는 관찰을 식별하는 것), feature extraction(형상 추출)
  3. 강화 학습
    자가학습(학습자가 예를 무작위로 생성하여)을 통해 환경과 상호작용하여 보상을 받고, 보상을 바탕으로 행동을 강화하는 방식
    주로 사용 : robotics control, game(alphaGo 같은)

이 3개가 따로 노는 것이 아님!
ex. 자율 주행(robotics control)을 예로 들어보자!
자율주행 자동차가 동작하려면 먼저 길이나 장애물 등에 대한 학습이 이루어져야 하고, 이 학습 데이터들을 바탕으로 자기가 갈 수 있는 곳을 분류할 수 있어야 함. 이때 지도학습, 비지도 학습이 이뤄지고, 이를 바탕으로 길을 지나다니면서 직접 부딪혀보고, 앞으로도 가보고, 장애물이 갑자기 등장하면 멈출 줄도 알아야 함. 이는 환경과 상호작용하면서 얻는 보상을 바탕으로 행동이 강화됨. 강화학습이 이뤄짐

즉, 유기적으로 3가지 학습이 연결되어 있어야 강화학습이 잘 이뤄질 수 있는 것!

Deep Learning

딥러닝도 시대 흐름에 따라 점점 발전하였는데,

1950년대에 Neural Network가 등장하였음!
뉴런 네트워크를 이해하려면 퍼셉트론에 대한 이해가 먼저 필요하다.
퍼셉트론은 3가지(input, output, weight)로 이루어져있는데 여러 개의 입력 값에 대해 가중치를 적용하여 곱하고 더한 후 임계치를 추가하여 최종 결과 값(0, 1)을 전달한다.
이런 퍼셉트론이 여러 개의 층으로 이루어진게 뉴런 네트워크이다!

인간의 뉴런의 개념을 표현한 것이라 이름도 신경망이다! ....
뉴런에는 수상돌기, 축색돌기, 시냅스 말단이 있는데 수상돌기에서 데이터를 얻어 데이터를 모아 축색돌기를 통해 시냅스 말단에 도착한다.
이 과정을 컴퓨터에서 표현하는 신경망은 각각 input, weight, 함수로 이루어져있다.

NN -> DNN -> DL로 발전하게 된다.

DNN(Deep Neural Network)은 심층 신경망으로, 입력레이어와 출력레이어 사이의 여러 개의 숨겨진 레이어들로 이뤄진 인공 신경망이다.
계속 층을 쌓아 전체 신경망 구조를 만들어 출력층에서는 학습 작업을 수행한다. 입력레이어와 출력레이어 사이의 숨겨진 레이어(은닉 레이어)가 많을 수록 신경망이 깊다(deep)고 표현할 수 있다.

CNN(Convolutional Neural Network)은 합성곱 신경망으로 DNN에 확장 버전이라 생각하면 된다. 이미지 학습을 잘 다룰 수 있도록 데이터의 특징을 추출하여 특징들의 패턴을 파악하는 구조이다.

이 사진을 보면 DNN과 CNN이 어떤 식으로 이뤄지는지 보기가 쉬운데, CNN과 DNN 신경망으로 학습된 인공지능이 보트 이미지를 인식하는 과정은 다음과 같다.

  1. 먼저, 보트의 특징을 필터링하여 하나의 합성곱 레이어를 만든다.
  2. 1에서 만든 레이어를 바탕으로 좀 더 복잡한 특징을 추출하는 새로운 합성곱 레이어를 만든다.
  3. 1,2의 과정을 반복하여 여러 개의 합성곱 레이어를 연결하여 고차원적인 특징을 뽑아내어 보트를 인식시킨다.
    'Fully connected' 이전 과정에서는 CNN의 과정이 일어나고, 이후 과정에는 DNN의 과정이 일어난다.

'Fully connected'과정 직전에 pooling을 통해 사이즈를 resize할 수도 있다.

CNN을 이용하면 input으로 넣은 nxn 사이즈의 다차원 배열을 고양이 사진을 1x1 사이즈의 1차원 배열 형태의 output으로 보여줄 수 있어 데이터의 크기 또한 줄어들어 이미지 외 다른 고차원의 데이터에서도 광범위하게 활용된다.

참고자료

https://hleecaster.com/ml-perceptron-concept/ NN과 percetron
성신 주최 인공지능 + 자율주행 특강
지난 학기에 배운 인공지능

댓글