데이터 분석을 위한 파이썬 4일차 - 1

Shin·2023년 3월 30일
0

python

목록 보기
5/10

머신러닝

AI : artificial inteligence의 약자로, 사람의 사고능력을 구현한 소프트웨어(시스템)

AI 는 크게 두 가지 부류로 나뉘어 진다.

    1. String AI(강인공지능) : 마치 아이언맨의 자비스 와 같은.. 사람과 완전히 구별이 불가능한 AI. 즉 현재 AI 연구의 최종적인 목표이자 지향점.
    1. Weak AI(약인공지능) : 특정 목적, 분야에 대해서는 사람과 유사한 능력 혹은 그 이상의 능력을 발휘할 수 있는 AI. 바둑의 알파고, 체스의 인공지능, chat gpt, 자율주행 등등 현재 상용화되고 있는 모든 AI 는 모든 Weak AI 에 해당한다.

사람이 생화학적으로 사고를 하는 과정과,
컴퓨터가 전자기적으로 사고를 하는 과정에서
소요되는 시간적 차이는 100만 배 정도 차이가 난다고 한다.

사람의 사고는 과거로부터 반복적으로 학습된 기억을 바탕으로 사고가 이루어진다.

Weak AI 는 마치 사람과 같이 Data 를 기반으로 해서 학습을 시켜서 아직 일어나지 않는 일들을 예측 할 수 있도록 만드는 AI 라고 할 수 있다.

지끔까지 하고 있던 일반적인 프로그램의 분야는 Rule Based Program 이었다. 다른 말로는 Explicit Program 이다.

즉,

데이터를 입력하면, 사전에 정해진 로직을 통해서 데이터가 처리되고, 최종적으로 출력이 되는 형태를 의미한다.

하지만 머신러닝의 분야는 그 형태가 조금 다르다.

데이터와 해답
(사람의 이미지와 '사람', 고양이의 이미지와 '고양이'... )
이 같이 입력이 이루어지면, 무언가 프로그램 처리를 하고 나서 결과적으로 출력되는 것은 규칙성 을 출력하게 된다.
즉, 일반적인 프로그램은 이미 정해진(정한) 규칙에 따라서 해답을 출력하는 과정이라면, 머신러닝은 데이터와 해답을 받아서 어떤 규칙성이 있는지 찾아내게 된다.

그리고 이 규칙성수식 으로 출력이 되게 된다.
그리고 출력된 수식 이 바로 모델 이다.

이렇게 생겨난 모델을 가지고 나서 데이터를 넣게 되면 예측 을 통해 해답을 예측해서 출력하게 된다.


머신러닝 기법

그렇다면 그러한 모델을 만들기 위해선 어떤 방법을 사용해야 할까?

* 1. Regression -> 지도학습

통계 분야에 존재하던 회귀분석 에서 가져온 기법
이럴 기반으로 해서 Neural Network 로 넘어가고 Deep Learning 으로 가게 된다.

2~5번까지의 기법은 이미 이론이 정형화되어 있고, 완성된 API, 라이브러리가 구현되어 존재한다. 따라서 각각의 기법의 개념이 어떤건지, 어느 케이스에 필요한 지만 배우고 사용할 수 있으면 된다.

2. SVM(support vector machine) -> 지도학습

3. Decision Tree, Random Forest -> 지도학습

4. KNN -> 지도학습

5. Navie Bayes -> 지도학습

* 6. (Artificial) Neural Network(ANN) => Deep Learning -> 지도학습

사람의 뇌를 본따서 만드는, 뉴런의 동작 방식을 모방해서 만들어보는 기법이 하나 존재하는데 인공신경망 기법

이 기법이 발전되면서 등장한 것이 Deep Learning

즉, 딥러닝은 머신러닝 기법의 한 종류 중 하나로 존재한다.

다른 5가지의 기법과 딥러닝 기법에는 몇 가지 차이점이 존재한다.
그 중에서 가장 큰 차이점은 데이터 형태에 있다.

일반적인 정형데이터(DB에 담을 수 있는 데이터... 이름,나이,생일 등) 을 사용할 때에는 일반 머신러닝 기법이 효율적이다.

반면 비정형데이터(이미지, 자연어, 음성, 대용량의 텍스트)을 사용할 경우 일반 머신러닝 기법으로는 학습이 잘 되지 않는다. 그 때 딥러닝 기법을 사용하게 된다.

AI 를 만들 때에는 정확한 결과값도 중요하지만, 예상되는 응답시간 역시 매우매우 중요하다. 특히 실시간적으로 결과를 요구하는 예측(자율주행...) 에 있어서는 응답시간이 매우 중요하다.

7. K-Means, DBSCAN -> 비지도학습

8. Reinforcement Learing -> 강화학습

이러한 여러 기법 중에서 어떤 기법을 선택하느냐는 내가 가진 데이터의 형태가 어느 것이냐에 따라서 설정을 할 수 있게 된다.


Machine Learing Type

지도학습(supervised Learing)

[ Data | label ] 형식으로 데이터를 프로그램에 전달해서 규칙성을 찾는 타입

지도학습인지 아닌지를 구분하는 것은 데이터의 형식을 보고 판단이 가능하다.

비지도학습(Unsupervised Learning)

[ Data ] 형식으로 데이터를 프로그램에 전달해서 Clustering Model 을 출력하는 타입

준지도학습(Semiseupervised Learning)

[ Data | label ]

[ Data | ]

와 같이 지도학습과 비지도학습 모두를 사용하는 타입

강화학습

마치 바둑의 알파고와 같이, 현재보다 더 나은 상태를 만들어가는 타입

주로 금융권(주식, 코인, 증권...) 들에서 미래 예측을 할 때 사용하게 된다.

일반적으로 학습의 순서로는 지도학습 -> 비지도학습 -> 강화학습 순으로 접근하게 된다.

0개의 댓글