220309 인공지능(AI) 기초 다지기 5편

Unsupervised Learning

이번 포스팅에서는 이전에 포스팅하였던 지도학습(Supervised Learning)의 학습 과정에 대해서 좀 더 구체적으로 정리를 해보고자 한다.


지도학습(Supervised Learning) 학습과정 3단계

1단계 데이터 수집 및 특징 추출하기

머신러닝의 지도학습 유형에서는 (X,Y)에서 output에 해당하는 Y(labeling data)가 필요하다. 이 labeling data는 CrowdSourcing을 통하여 labeling 작업이 되고 있다.
input에 해당하는 X의 경우에는 feature의 표현으로, 주어진 X가 어떤식으로 표현이 될 것인가에 대해 결정을 되는 중요한 부분이다.

2단계 ML Model 선택하기

ML Model의 종류로는 아래와 같다.
(1) Logistic regression, SVM : 분류모델
(2) Decision Tree, Random forest : 트리기반, 회귀모델
(3) Nearest neighbor : 비선형 모델 (근처 데이터를 통해 데이터 결정)
(4) Neural Network, MLP : 딥러닝의 모체가 되는 모델

[ML Model 선택 가이드라인]

  • 주어진 뎅티터의 특성에 따라 특정 ML Model이 더 낫다는 판단이 있을 수 있다.
  • 많은 데이터 분석의 경험을 통해서 상대적으로 데이터가 많다면, Parameter가 많은 모델들이 Parameter가 적은 모델보다는 더 효과적으로 동작할 수 있다.

3단계 파라미터 값 최적화하기

주어진 모델하에서 모델이 가지고 있는 학습하고자하는 Parameter의 값을 결정하는 단계이다.

아래와 같이 회귀(regression)그래프가 주어져있고, 실제 우리가 학습하고자하는 Parameter값들이 아래와 같이 분포되어있다고 가정하자.

Regression graph

f(x; w1, w2, w3)에서 각 각의 가중치 w1, w2, w3 값을 조정해서 우리가 학습하고자 하는 Parameter값들을 좀 더 잘 표현 할 수 있는 모델을 결정지을 수 있도록 조정할 수 있다. 하지만 첨부한 사진에서 보듯이 정성적 판단(사람의 눈으로 판단)으로만 본다면 명확히 어느 가중치의 값이 가장 최적의 값인지 알 수 없다.
따라서 이 경우에는 정량적 판단(지표를 통한 판단)이 중요하다. f(x)와 y간의 관계에서 error를 최소화 함으로써 우리가 학습하고자 하는 Parameter와 실제 데이터 간의 오차범위가 작음을 확인하는 것이다.

Error function

아래의 공식은 에러의 정도를 정량적으로 판단하기위한 것으로, 위의 그래프에서 선형함수(예측값)와 Parameter(실제값) 사이의 차이값(actual Y - estimated Y)의 제곱된 값을 모든 데이터 (x,y)에 대해 모두 시행하여 합한 것을 의미한다. 여기서 W는 Error를 최소화하기 위한 값인데, 이 에러를 최소화시켜줄 값 W를 통해서 최고의 모델을 찾을 수 있다.

Error function fomulation

주어진 데이터를 표현하는 최고의 Parameter를 찾는 문제는 f(x)와 y사이에서 에러를 최소화 시키는 것이다 이것이 최적화 문제이며, 문제해결에는 아래의 두 가지 방법이 있다.

(1) Analytic solution : 방정식 풀이를 통해 최적의 해 구하기

(2) Numerical solution : 주어진 함수를 통해 해를 구하지 못하는 경우, 수치를 통해 해와 가장 가깡툰 근사치를 구한다

이렇게 학습된 Model을 사용해서 새로운 input x를 통해 output y를 예측하거나 추론한다.

220307 인공지능(AI) 기초 다지기 4편

Unsupervised Learning

이번 포스팅에서는 이전 포스팅에서 개괄적으로 분류해보았던 Reinforcement Learning에 대해서 좀 더 구체적으로 정리를 해보고자 한다.


강화학습(Reinforcement Learning)?

강화학습이란 다른 머신러닝(지도학습, 비지도학습)과는 달리 agent라는 개념이 도입된다. 이 agent는 environment(환경)에서 행동을 하는 주체이며, 행동에 의해 새로운 action을 갖으며, 이에 따라 새로운 state(상태)를 갖는다. 이 상대적인 action에 따라 environment(환경)은 새로운 state(상태)와 함께 보상(rewards)을 행동의 주체인 agent에게 부여한다.

예시) 미로에서 치즈를 찾는 생쥐 - 환경(미로) / action(쥐의 미로 속 이동) / rewards(치즈) / state(미로 내 쥐의 위치)

  • Supervisor가 없고, 환경(Environment)에 의해서 보상을 받고 최상의 rewards를 얻기 위한 action을 선택하도록 한다.
  • Feedback이 delay될 수 있다.
  • Action이 순차적으로 미래에 주어지는 보상에 영향을 줄 수 있다.
  • 환경이 어떤 새로운 상태를 반환할지 예측할 수 없기 때문에 Black box 상태로, 어떤식으로 rewards, state를 나타내는지 알지 못한다.
  • The key challenge is to learn to make good decisions under uncertainty. (핵심 과제는 불확실성에서 최고의 결정을 도출해내는 것을 배우는 것이다.)

OpenAI 사용해보기

OpenAIhttps://gym.openai.com/

1
2
3
4
5
6
7
8
import gym
env = gym.make("Taxi-v1")
observation = env.reset()
for _ in range(1000):
env.render()
action = env.action_space.sample() #your agent here (this takes random actions)
#결과(observation)
observation, reward, done, info = env.step(action)

강화학습 예시1) Frozen Lake

Frozen Lake

Source에서 Goal까지 이동을 하는 Agent가 존재한다. 위의 그림과 같이 얼은 빙판은 F(Frozen), 구멍이 뚫린 부분은 H(Hole)로 표기가 되어있다.

1
2
3
4
5
6
7
import gym
env = gym.make("FrozenLake-v0")
observation = env.reset()
for _ in range(1000):
env.render()
action = env.action_space.sample()
observation, reward, done, info = env.step(action)

강화학습 예시2) 갤러그 게임

왼쪽, 오른쪽, 총 쏘기와 같은 액션(동작)이 주어지고, 이 액션에 따라 보상(점수)가 주어진다. agent인 player의 상태(state)는 지속적으로 업데이트를 해주며, 이러한 학습을 통해 갤러그와 같은 총 쏘기 게임을 머신러닝의 강화학습 형태로 학습할 수 있다.

강화학습 예시3) 벽돌깨기 게임

사람만이 할 수 있는 전략도 컴퓨털가 학습하여 게임에 적용할 수 있다.

강화학습 예시4) 알파고

강화학습 예시5) 자율주행

Artificial Neural networks

딥러닝(Deep Learning)은 머신러닝의 여러 방법 중 중요한 방법론이며, 인공 신경망(Artificial Neural Network)의 한 종류이다. 즉, 인공지능 ⊃ 머신러닝 ⊃ 인공신경망 ⊃ 딥러닝 관계가 성립한다.
우선 딥러닝에 대해서 학습을 할 것이기 때문에 뉴럴 네트워크의 역사적 배경에 대해서는 상식적으로 알아두어야 한다. 그래서 큼직큼직한 사건은 알아두도록 하기 위해 정리하고 암기해둬야겠다.

Neural network, 한국말로하면, 신경 네트워크이다. 이 Neural network라는 말은 요즘 들어 각광을 받고 있지만, 이 말은 1940년대부터 쓰였던 말이었다. 이 시기부터 사람들은 사람의 뇌 신경 구조를 전자기적 형태(인공 신경망)로 구현하고자 했다. 그래서 1940년대에는 Electronic brain라고 해서 X AND Y X OR Y와 같은 형태로 구조화 시키려고 했다. 하지만 현실적으로 AND, OR로 신경 구조를 만드는 것은 불가능했다.

1957년 Perceptron이라는 개념이 등장을 했는데, 이때부터 사람의 뇌 신경구조를 모방한 인공 신경망을 구현할 수 있었다.

1960년부터 1970년까지 Neural network의 황금기였다가 1970년대에 XOR 문제가 발견이 되면서 Neural network의 암흑기로 돌아간다.

1986년 조페리 힌튼(Geoffrey Hinton)이 Multi-layered Perceptron(Back Propagation)으로 XOR문제를 해결할 수 있다고 증명하였으나, 그 과정이 너무 복잡하고 긴 학습시간으로 주목받지 못하였다.

이후에 1995년 SVM(Support Vector Machine)을 활용해서 XOR문제와 같은 비선형 관계를 학습할 수 있는 모델이 등장하였고, 조페리 힌튼이 제시한 BackPropagation보다 간단하고 효과적이었다.

2006년 Deep Neural Network(Pretraining)모델이 등장을 하게 되고, 1986년 Multi-layered Perceptron(Back Propagation)을 제시했던 조페리 힌튼이 어떻게 학습하는지에 대한 제안을 하게된다.

cf) 심층 신경망(Deep neural networks)
(1) 입력 변수들 간의 비선형 조합이 가능하다.
(2) 특징 표현(Feature representation)이 학습 과정에서 함께 수행될 수 있다.
(3) 데이터가 증가함에 따라 성능이 개선될 수 있다.

이에따라 2010년 후반에는 CNN기반의 이미지 분류 모델인 AlexNet을 통해 Neural Network 모델이 복잡한 문제를 해결할 수 있음을 증명

AI vs ML vs DL 상관관계

AI(Artificial Intelligence)는 ML(Machine Learning)과 DL(Deep Learning)을 아우르는 개념이다. AI는 1990년대 전후로 나눠서 살펴 볼 수 있는데, 1990년대 전에는 명시적 룰(rule)만을 적용해서 기계가 판단하는 식이 전부였다. 하지만 1990년대 이후부터는 명시적 룰(rule)이 아닌 통계를 기반으로 기계가 판단을 하였다.
DL(Deep Learning)은 수많은 parameter들을 가진 복잡한 모델을 어떻게 학습 할 것인지에 대해서 학습기법이다.

Machine Learning vs Deep Learning

전통적인 머신러닝과 딥러닝의 가장 큰 차이는 feature extraction 과정과 classification 과정의 분리/통합 유/무 상태이다. 전통적인 머신러닝은 두 과정이 서로 분리되어있으며, feature extraction을 통해 나온 출력결과와 Output의 결과가 서로 비교되어 관계학습을 하게 된다.
하지만 딥러닝에서는 feature extraction 단계가 전통적인 머신러닝에서는 필수 단계로 간주되었던 것과 달리, feature extraction(=learned feature) + classification가 통합되어 학습으로 관여된다.
사용하는 측면에서 end to end learning이기 때문에 쉽지만, 이해하는 측면에서는 Black box 형태로 가려져있기 때문에 어렵다.

딥러닝 모델의 예시

  • Convolutional Neural Network(CNN) : 합성곱 신경망

  • Recurrent Neural Network(RNN) : 순환 신경망
    → 순차적 관계를 가진 시계열 데이터 처리에 가장 적합한 심층 신경망 기법

  • Graph Neural Network(GNN) : 그래프 신경망

  • Image Classification

    • SVN 25% ERROR RATE
    • AlexNet 16% ERROR RATE
  • Speech Recognition : 2010년 초 RNN model 적용

  • Machine Translation : 2010년 speech to speech model 적용, 2018 - 2019년 Transformer 적용 (Google translator/Naver Papago)

220305 인공지능(AI) 기초 다지기 3편

Unsupervised Learning

이번 포스팅에서는 이전 포스팅에서 개괄적으로 분류해보았던 Unsupervised Learning에 대해서 좀 더 구체적으로 정리를 해보고자 한다.


Unsupervised Learning ?

Supervised Learning이란 (X(input), Y(output))에서 Y(output) 값에 대한 레이블이 제공되지 않은 상태로, 최소한의 사람의 개입을 통해 데이터를 해석해서 숨겨진 데이터의 패턴을 찾아낸다.

그 예시로 각기 다른 모양과 색상을 가진 사과와 바나나가 나열되어있다고 가정해보자. 어떤 기준으로 나열을 할 것인가? 앞서 이미 언급을 했듯이 Y라는 label이 주어지지 않은 상태에서 기계는 주어진 데이터들을 분류해야한다. 기계는 사람과 같이 직관력이 없기 때문에 모양이 동그란지 혹은 길죽한지에 따라서 분류를 하기도 하고, 색상이 알록달록한지 아닌지에 따라 분류하기도 한다.

Unsupervised Learning 예시

그렇다면 비지도 학습의 예시로는 어떤것들이 있을까?

우선 첫 번째, 클러스터링(lustering)이 있다. Clustering은 Classification과 비슷하지만 Y labeling data가 주어지지 않는다는 점이 다르다. Clustering은 말 그대로 data duples을 clusters로 grouping하는 것을 말한다. Similar/Dissimilar를 정의함에 있어서는 사람이 개입을 하게 되는데, 이 부분에 있어서만 최소한으로 사람이 개입하게 된다.

Unsupervised learning - Clustering

두 번째, 차원축소(Dimensionality reduction)가 있다. 대표적인 예시로 PCA(Principal Component Analysis)가 있으며, 2차원의 데이터를 1차원 데이터로, 3차원 데이터를 2차원 데이터로 축소를 하게 된다. 이렇게 차원을 축소하게 되면 어떤 효과가 있을까?
우선 첫 번째 고차원에서는 알 수 없었던 correlation(상관관계)를 효과적으로 알 수 있고, 불필요한 noise를 제거할 수 있으며, 저장공간을 효율적으로 사용 할 수 있다. 그리고 마지막으로 시각화와 해석능력이 좋아진다.

세 번째, 밀집도 판단(Density estimation) : sample 모양이 규칙적이지 않고, 복잡한 모양인 경우가 많다. 이러한 복잡하고 규칙적이지 않은 모양의 영역에서 실제 데이터 영역을 추출해내야되는 경우가 많은데, 우리는 Manifold Hypothesis라는 용어에 집중해야 한다. 이 용어는 고차원 데이터라 할지라도 실질적으로 해당 데이터를 나타내주는 저차원 공간인 manifold 존재한다는 것을 의미한다. (sparse한 고차원 데이터를 간추려서 보다 저차원 공간으로 나타낼 수 있다는 의미)

manifold란, 다차원 데이터에서 실질적으로 의미를 가지는 특징을 모아둔 조밀한 특성 공간을 뜻하며, 실제 데이터를 통해 스스로 학습하는 딥러닝 비지도 학습이 이러한 manifold를 스스로 찾아낸다.

이러한 Manifold Hypothesis를 통해 가능한 가능해진 기술이 바로 GAN(Generative Adversarial Network)로, 실제로 존재하지 않는 사람을 예상으로 생성해내는 기술이다. 최근에는 사람 이외에도 자연 이미지도 예상/예측해서 생성해내고 있다.
이외에도 style-based GAN, video-to-video synthesis, source to tareget GAN 등이 있다.

220302 인공지능(AI) 기초 다지기 2편

Supervised Learning & Unsupervised Learning

이번 포스팅에서는 이전 포스팅에서 개괄적으로 분류해보았던 Supervised Learning과 Unsupervised Learning에 대해서 좀 더 구체적으로 정리를 해보고자 한다.


Supervised Learning ?

Supervised Learning

이전 포스팅에서 알아보았듯이 Supervised Learning이란 (X(input), Y(output))에서 Y(output)에 대한 값이 labeling을 통해 주어지고, 이를 통해 X(input)값이 유추되는 형태이다.
Y의 값이 direct feedback으로 주어지고, Y 데이터의 형태에 따라 두 가지 형태로 분류된다.

  • Y labels are continuous = Regression
    Regression은 크게 Linear Regression과 Polynomial regression으로 분류된다.

    Polynomial regression은 레이블이 다항식 관계에 있는 경우이며, 2차 3차 함수의 계수 형태로 존재한다.

Linear and Polynomial regression
  • Y labels are discrete = Classification

Y 데이터가 아래와 같이 discrete형태로 분류된다면 이는 supervised learning의 classification로 분류된다.

ex)

(1) SVM (Support Vector Machine) : 기계학습의 분야 중 하나로 패턴 인식, 자료 분석을 위한 지도학습 모델이며, 주로 분류와 회귀 분석을 위해 사용된다.

(2) 신경망(Neural Network) : 신경망은 인간의 뇌 행동을 반영한다. 인간의 뇌 행동에 있어, 컴퓨터 프로그램은 특정 패턴을 인지하고 AI, 머신러닝, 딥러닝 분야에서의 일반적인 문제들을 해결하는 것 또한 허용한다.
신경망은 Artificial Neural Networks(ANNs) 또는 Simulated Neural Networks(SNNs)로 알려져있다.
이 신경망 개념은 머신러닝의 부분집합 개념이자, 딥러닝 알고리즘의 핵심적인 부분이다.

이 신경망이라는 이름과 구조는 인간의 뇌로부터 영감을 받았으며, 생물학적인 뉴런들의 시그널을 주고받는 방식을 모방하였다.

- 퍼셉트론(Perceptron)
  인공 신경망은 수많은 머신 러닝 방법 중 하나로, 딥 러닝을 이해하기 위해서는 우선 인공 신경망에 대한 이해가 필요하기 때문에 초기 인공 신경망인 퍼셉트론(Perceptron)에 대한 이해가 필요하다.

[참고] https://wikidocs.net/24958

- 다층 퍼셉트론(MultiLayer Perceptron, MLP)

(3) 의사결정 나무(Decision tree) : 의사결정나무는 DTs라고도 하며 여러가지 규칙을 순차적으로 적용하며서 독립 변수 공간을 분할하는 분류 모형이다. 분류(Classification)와 회귀 분석(Regression)에 모두 사용될 수 있기 때문에 CART(Classification And Regression Tree)라고도 한다.

(4) 나이브 베이즈 분류(Naive Bayes classification) : 스팸메일 필터, 텍스트 분류, 감정 분석, ㅊ투천 시스템 등에서 광범위하게 활용되는 분류기법이다. 나이브 베이즈 모델인 용어에서 알 수 있듯이, Naive(단순한, 순진한, 전문성이 없는)한 모델임을 알 수 있다. 나이브 베이즈 모델은 모든 feature(속성)가 동등하게중요하고 독립적이라고 가정한다. 하지만 실생활에서 각 feature(속성)들 간에 독립성을 보장하기는 쉽지 않기 때문에 실생활에 바로 적용하기에는 어려움이 있다.

참고 - 머신러닝 관련 블로그 글 (bkshin tistory)

(5) K-nearest neighbors(K-NN) : 지도 학습 기반에 한 종류로 거리기반 분류분석 모델이라고 할 수 있다. 기존 관측지의 Y값(Class)가 존재한다는 점에서 비지도학습인 클러스터링(Clustering)과 차이가 있다.

유유상종이라는 말이 있다. 같은 날개를 가진 새들끼리 함께 모인다는 말인데, K-NN 알고리즘을 설명하기 적합한 속담이다. 머신러닝에서 데이터를 가장 가까운 유사 속성에 따라 분류하여 데이터를 분류하는 기법이 바로 K-NN 알고리즘 기법이기 때문이다.

Classification model

Classification model 예시

분류 모델의 예시로는 대표적으로 문서 분류 Sports, Politics, science … topic 별로 분류하는 것과 e-mail 중 ham vs spam SNS 내용중에 sentiment: negative, confidence: 99%, trend: boring 과 같은 감성적인 내용으로의 분류의 예시가 있다.

이외에도 아래의 분류 관련 예시들이 있다.
(1) Image Classification : ImageNet Competetion
(2) Video Classification : 영상의 frame을 쪼개서 분석
(3) Object Detection
(4) Video Summarization : 범죄 현장에서 수사에 활용되는 기법으로 다른 시간대의 물체가 동시간대에 시간만 다르게 labeling 되어 표시된다.
(5) Image Captioning : 이미지에 대한 설명 label X와 Y의 관계를 규명 (Image caption)
(6) Speech Recognition : X(Speech data), Y(대응 텍스트 - 영상에 대한 설명)

이러한 머신러닝의 기법 중에 하나인 Supervised learning 기법은 우리의 실생활은 물론 현업에서도 많이 활용되고 있다.

220301 인공지능(AI) 기초 다지기 1편

아서 사무엘

위에 첨부한 사진은 머신 러닝이라는 용어를 처음으로 사용하고 주변 사람들에게 전파한 아서 사무엘(Arthur Samuel) 교수님이시다. 우선 인공지능이라는 분야에 대해 공부를 시작했기 때문에 시초에 머신러닝이라는 용어를 가장 처음 사용한 사람에 대해서는 상식적으로 알고 있어야겠다고 생각했다.


자, 그럼 이번 포스팅에서는 입문자를 위한 인공지능/머신러닝 관련 강의를 듣고 개인적으로 학습한 내용을 정리해보겠다.

머신러닝(Machine Learning) ?

기계학습이란 명시적인 규칙없이 데이터 간 관련성을 스스로 찾아낼 수 있는 컴퓨터 프로그램을 말한다. 이는 1959년에 Arthur Samuel 교수가 한 말이다. 1998년에 Tom Mitchell은 특정 Task가 특정 경험을 통해 Perfermance measure를 얻었다면, 이러한 데이터의 반복 축적을 통해 컴퓨터가 더 나은방향으로 개선해나가게 되는데, 여기서 컴퓨터는 경험을 통해 자동으로 증진해나감에 집중한다.

E - DATA, T - CLASSIFICATION, P - ACCURRACY(정확도를 높이기 위해서는 데이터의 갯수를 늘린다)

전통적인 프로그래밍과 머신러닝의 접근법 차이

전통적인 프로그래밍에서는 프로그래머가 명시적으로 INPUT 값과 PROGRAM(RULES/ALGORISM)을 명시하고 결과 값으로 OUTPUT(ANSWER)을 도출해낸다. 반면 머신러닝은 INPUT 값과 OUTPUT값의 DATASET들을 명시하고 이를 통해 새로운 함수(RULES/ALGORISM)을 도출해낸다. 새롭게 도출해낸 함수를 통해 다른 값들이 들어왔을 때 결과값으로 어떤 값이 도출되는지 예측할 수 있다.

conventional programming and machine learning

머신러닝의 예시

그렇다면 머신러닝의 예시로는 어떤 것들이 있을까?
(1) 강아지 사진이 주어졌을 때, 해당 영상이 어떤 레이블인지 분류
(2) 자연어 텍스트의 평점 예측
ex) 너무 재미있어요 : 9.0/10.0
(3) vector값에 대한 영상 출력

위의 예시 모두 f:x → y 라는 관계가 성립된다. 여기서 x는 이미지, 자연어, vector가 될 수 있고, y는 레이블, continuous data, 영상이 될 수 있다.

머신러닝의 타입

type of machine learning

머신러닝의 타입에는 크게 두 분류로 나뉠 수 있다. feedback이 필요한 경우와 그렇지 않은 경우, teacher가 존재하는 경우와 그렇지 않은 경우로 나뉠 수 있다.

(1) Teacher가 존재하지 않는 경우는 Unsupervised Learning으로, feedback의 유/무와 관계없이 주어진 data(X)만으로 학습을 해서 결과 값(Y)를 추론하는 것이다.
구체적인 방법으로는, Dimensionality Reduction(차원 축소)가 있는데, 이는 입력된 고차원의 데이터를 의미있게 표현하는 방법에 대한 구현 방법이다. 또 다른 방법으로는 Clustering이 있는데, 이는 Supervised Learning의 Classification과 유사한 방법(단, y값이 주어지지 않는다)이다.
케이크 모형으로 살펴보면, Unsupervised Learning은 케이크의 거의 전체를 포함하는 비중으로, 전체 머신러닝에서 상당한 비중과 난이도를 포함한다.
f(x)에서 값 x만으로 함수 f(x)의 결과 값 y를 도출해내야 하기 때문에 어렵다.

(2) Teacher가 존재하는 경우는 Supervised LearningReinforcement Learning이 있다. Supervised Learing은 가장 많이 사용되는 형태의 머신 러닝으로, 직접적 피드백(Direct feedback)이 있다. (X,Y) PAIR 형태로 Labeling 작업된 데이터가 존재한다. 입력 데이터를 통해 결과 값을 추론하게 되므로 다른 방법에 비해 쉽게 해결될 수 있는 방법이다.
y = f(x) 구체적인 방법으로는 Classification과 Regression(회귀)이 있으며, pair로 존재하는 (X,Y) 데이터에서 Y데이터의 성격에 따라 그 방법을 달리한다.
데이터 Y가 Categorical한 성격을 가지고 있다면, Classification, Continuous한 성격을 가지고 있다면 Regression(회귀)의 방법을 택한다.
케이크 모형으로 살펴보면, Supervised Learning은 케익의 데코레이션 부분인 icing 부분으로, 머신러닝에서 매우 적은 부분을 차지하고 있음을 알 수 있다.

(3) 마지막으로 Teacher가 존재하는 경우 중 간접적인 피드백(Indirect feedback)을 주는 경우인 Reinforcement Learning은 여러번의 action을 수행하여 간접적으로 어떤 action이 더 나은지 판단하는 방법이다.
f(s,a) = r의 형태를 가지며, r(rewards)의 값이 최대화되는 a(action)을 도출해낸다. pair로 존재하는 (S,A) 데이터는 (입,출)을 담당하며, 강화학습의 주된 목적으로 사용된다.

Reward가 최대화 되는 방향으로 매 Step마다 Action을 선택해서 문제를 푸는 기법으로, Sequential data 환경에서 사용된다.
사용되는 분야로는 Game AI / Robot Navigation / Realtime decisions 등이 있다.

케이크 모형으로 살펴보면, Reinforcement Learning은 케이크의 데코로 올라간 체리와 같이 아주 작은 비중으로, 그 난이도는 가장 어렵다.
y = f(x) that maximizes r
Predict action y based on ob servation x to maximize a future reward r.

케이크를 통해 바라본 머신러닝의 타입

cake model

220301 인공지능(AI)에 한 걸음 다가가기

머신러닝 비기너 이미지

(2022/03/01) 작성

이번 포스팅에서는 이전에 궁금했지만 어려운 분야라서 선뜻 다가가기 어려웠던 인공지능이라는 분야에 대해 한 번 개념적인 부분을 공부해보면서 공부한 내용을 정리해보려고 한다.
완전 입문이기 때문에 생활코딩의 머신러닝 강의를 듣고 학습한 내용을 정리해보려고 한다.

머신러닝(Machine Learning) ?

인공지능이라는 말과 함께 빠지지 않고 나오는 말이 바로 이 머신러닝이라는 말이다. 한국말로는 기계학습인데, 왜 기계가 학습을 하는가 생각을 해보면, 인공지능이라는 것이 인간의 판단을 기계에 위임하기 위한 기술이기 때문이다. 전염병 판단이나 자율주행 등과 같이 무언가 인간을 대신해서 의사결정을 해야되는데, 이를 위해서는 이 머신러닝, 즉 기계학습이 필요하기 때문이다.

문제 + 공부 = 문제 의 밸런스

우리의 일상에는 많은 문제들이 존재하며, 이러한 문제들을 해결하기 위해 우리는 공부(학습)를 한다. 가장 이상적인 형태가 바로 해결하려는 문제에 비해 해야되는 공부의 양이 적고, 이를 통해 문제의 양의 줄어드는 것인데, 이러한 형태는 우리의 일상에서 일반적이지 않다. 이와 반대로 문제의 크기에 비해 공부하는 양의 크기가 크고, 공부한 양에 비해 문제는 해결되지 않고 오히려 문제의 크기가 더 커지는 부작용이 발생하기도 한다.
따라서 공부의 효용적 측면에서 우선 문제의 양적 측면을 최대한 부각시켜서 상대적으로 공부해야되는 양이 작게 보이도록 함으로써 공부의 양적 부담을 줄이는 방향으로 한 번 머신러닝이라는 분야에 접근해보도록 하겠다.

결정 = 비교 + 선택

결정은 비교와 선택의 합이다. 우리의 일상에는 다양성으로 인해 무언가를 선택함에 있어 비교해야되는 항목이 엄청나며, 이로인해 우리는 무언가 결정을 하는데 있어 어려움을 겪는다. 따라서 이러한 결정을 기계에게 부여함으로써 기계가 대신 결정할 수 있도록 할 수 있다. 여기서 오해가 있을 수 있는데, 망원경이 있다고 해서 눈이 필요없는 것이 아니고, 포크레인이 있다고 해서 손이 필요없는 것이 아니듯, ML이 있다고 해서 우리의 두뇌가 필요없는 것이 아니다. 우리의 두뇌가 더 나은 가치 판단 능력으로 확장시키기 위해 ML이 필요한 것이다.

소비자가 아닌 생산자의 입장에서 머신러닝 바라보기

이전에는 불가능하다고 했던 것들이 요즘 머신러닝을 통해 가능해지고 있다. 이러한 편안함을 느끼고 사용하는 단순 소비자에 그치지 않고, 우리의 일상에 잠재되어있는 각종 불편한 것들을 어떻게 해결할지 항상 궁리하는 습관을 가지고 해결하고자 노력하는 생산자의 입장에서 앞으로 머신러닝과 관련된 개념과 기술들을 학습해보도록 하겠다.

(2022/03/06) 작성

우선 스마트 폰의 사용자가 되어보고, 차후에 필요한 지식을 쌓아나가자.

머신러닝 이라는 분야를 공부하기 위해서는 원리 + 수학 + 코딩 이 세 가지 부분은 필수적으로 알아야 한다. 하지만 우리가 스마트폰을 처음 사용했을 때 스마트 폰의 원리에 대해서 전부 이해한 상태였는가? 아니다. 우리는 우선 사용자적 관점에서 스마트폰을 사용해보고 좀 더 심도있게 스마트 폰을 사용해보고자 개인적으로 원리나 코딩을 공부해본다.
요즘 수학을 몰라도 머신러닝 서비스를 사용해서 개발할 수 있도록 나온 Teachable machine https://teachablemachine.withgoogle.com/이라는 서비스가 있다. 이 서비스를 이용하면 이미지, 오디오, 포즈 등의 데이터를 컴퓨터에 학습시킬 수 있다.

예를들어 A 또는 B라는 포즈의 사진을 학습시키기 위해서는 학습력을 높이기 위해 여러개의 사진을 학습시켜야 한다.
각 각의 Class 사진들이 입력이 되었다면, Training 시켜주면 되고, Training 결과 판단력의 결과로 model이 출력된다.
좋은 model일수록 좋은 추측 결과를 도출하며, model을 만드는 과정이 학습의 과정이다.

(2022/03/07) 작성

모델(model), 머신러닝(machine learning)의 중요 열쇠

일반적으로 사람이 먹을 수 있는 것과 먹을 수 없는 것을 판단 할 때에는 겸험에 의해 판단을 한다. 경험해보지 못한 음식이어도 유사 경험을 통해 추측 및 예측을 통해 결정을 할 수 있다.
과학에 있어서도 특정 현상이 관찰되면, 일단 해당 현상에 대해서 추측 및 가설을 세우게 되고, 검증을 위해 실험을 하게 된다. 실험을 통해 해당 가설의 진위를 가리게 된다.

여기서 무언가를 최종적으로 결정하는데 있어 판단하는데 있어 판단력이라는 것이 필요한데, 이 판단력을 기계에 부여하는 것이 바로 기계학습이며, 여기서 판단력은 model이다.
좋은 model일수록 좋은 추측과 좋은 결정이라는 결과를 도출해낼 수 있다.

(2022/03/08) 작성

머신러닝으로 문제해결하고 싶은 일상의 문제 생각해보기

https://bit.ly/ml-other-plan

자영업자

  • 환경

  • 불만족