Search에 대해 알아보기 전에 다양한 search 방법과 이론들에 대해 알아보자. Search 이론상태 공간 트리상태 공간이란 발생할 수 있는 모든 상태를 포함하는 집합이다. 예를 들어 8-퍼즐의 경우 9! = 362880 크기의 상태 공간을 가진다. 이러한 상태를 연결된 트리 형태로 그리면 상태 공간 트리가 된다. 맹목 탐색효율적인 전략 없이 정해놓은 순서에 따라서 탐색하는 알고리즘으로 BFS, DFS가 대표적이다. BFS는 최적 해를 보장할까? 그렇다. 왜냐하면 모든 깊이에서 가능한 모든 자식 노드를 살피기 때문이다. 그렇다면, 최적 해를 항상 보장하면서 이동 횟수를 줄일 수는 있을까? 없다. 왜냐하면 모든 노드를 탐색하며 최적 해를 찾는 방법이기 때문이다. 이러한 이유로 BFS는 너무 느리다는..
CS/인공지능
Reinforcement Learning강화학습에 대해서 이해하기 위해서 아래 두 가지 문제를 예시로 알아볼 것이다. 먼저, 이 두 문제에 대한 기본적인 정의를 알아보자. 다중 손잡이 밴딧 문제$1을 넣고 여러 손잡이 중에 하나를 골라서 당기면 $1을 잃거나 따는 문제이다. 손잡이마다 승률은 정해져 있는데 사용자는 확률을 모른다는 전제가 깔려 있다. 행동 - 상태 변화 - 보상의 학습 사이클에서 상태가 없는 단순한 문제이다. 탐험형 정책(exploration policy) : 처음부터 끝까지 무작위로 선택탐사형 정책(exploitation policy) : 몇 번 시도해보고 승률이 높은 손잡이만 당기는 것강화학습에서는 게임을 시작해서 끝날 때까지 기록을 에피소드라고 하며, 에피소드가 길면 확률을 통해서..
CNN컨볼루션 신경망은 이미지를 분석하기 위한 패턴을 찾아 이를 직접 학습하고, 학습한 패턴을 이용하여 이미지를 분류한다. CNN은 Convolution Layer, Pooling Layer, Fully Connected Layer를 사용해 사람의 시각 처리 방식을 모방한 딥러닝 모델이다. Convolution Layer : 입력된 이미지를 특정 커널을 이용해 이미지 특징을 추출하거나 신호 변환에 사용한다.Pooling Layer : 범위 내의 픽셀 중 대표값을 추출한다.Fully Connected Layer : 이미지를 분류하는 인공 신경망이다.Convolution Layer이미지 특징 추출, 신호 변환에 사용한다. 아래 그림에서 이미지는 8*8 크기이고 kernel은 3*3으로 표현했다. convol..
딥러닝 프레임워크텐서플로구글이 개발한 오픈소스 라이브러리로 데이터 플로우 그래프 구조를 사용한다. 즉, 수학 계산식과 데이터의 흐름을 노드와 에지를 사용한 방향 그래프로 표현한다. 노드 간의 연결이나 다차원 배열을 의미하는 텐서 사이의 연결관계를 표현할 수 있다. 주로 이미지 인식이나 반복 신경망 구성, 기계 번역, 필기 숫자 판별 등을 위한 각종 신경망 학습에 사용된다. 케라스텐서플로는 딥러닝 모델을 만들기 위해서 기초 레벨부터 작업해야 하는 문제가 있다. 이를 해결하기 위해서 케라스는 단순한 인터페이스를 제공한다. 케라스의 구성 요소는 모듈 형태로, 각 모듈이 독립성을 갖기 때문에 새로운 모델을 만들 때 각 모듈을 조합해 쉽게 새로운 모델을 만들 수 있는 장점이 있다.Model Class : Sequ..
sklearn의 필기 숫자 데이터셋을 받아서 predict하는 것의 성능을 비교해볼 것이다. sklearn의 필기 숫자 데이터는 8*8 맵으로 표현되어 있다. 이 데이터셋을 받아 예측하는 것의 성능을 측정할 건데, 학습에 사용되지 않은 새로운 데이터에 대한 성능을 측정해야 한다. 이를 일반화 능력이라고 하고 혼동 행렬을 사용해 성능을 측정할 것이다. 먼저 주어진 데이터를 train, validation, test set으로 나누고 이 결과 성능을 확인해볼 것이다. 1. SVMfrom sklearn import datasetsfrom sklearn import svmfrom sklearn.model_selection import train_test_splitimport numpy as np# 훈련 집합과 ..
신경망퍼셉트론퍼셉트론은 뉴런에서 착안한 아이디어로 다층 퍼셉트론과 딥러닝에서 핵심 개념이다. 입력층과 출력층으로 구성되며 i 번째 에지는 xi와 wi를 곱해서 출력층으로 전달된다. 출력노드 o는 d+1개의 곱셈을 모두 더한 s를 계산하고 활성함수를 적용한다. 활성함수는 뉴런을 활성화하는 과정을 모방한 함수로 퍼셉트론은 계단함수를 사용한다. 학습 알고리즘사람이 어떤 것을 학습하는 원리와 아주 유사하다. 예를 들어 사람이 수영을 한다고 하자. 수영을 위해 동작을 취하고 만족스러우면 그대로 수영하면 되는데, 만족스럽지 않다면 약간 조정해서 새로운 자세로 동작을 수행한다. 이처럼 조금 더 나은 방향을 향해 개선하는 것인데, 신경망은 가중치를 최적화하는 방향으로 개선한다. 이때 손실함수 J를 계산해서 J(w) 값..
머신러닝의 종류머신러닝의 종류는 3가지로 나눌 수 있다. supervised : 지도학습은 정해진 답을 알려주면서 학습시키는 방법이다. input으로 label(답)을 입력시키고 이것을 학습한 것을 바탕으로 예측하는 방법이다.unsupervised : 비지도학습은 정해진 답을 제공하지 않고 비슷한 데이터끼리 clustering 하는 방법이다.reinforcement : 머신러닝의 꽃이라 불리는 강화학습은 정답이 따로 없고 본인이 학습하고 난 후 보상을 받는 방식으로 학습된다. 머신러닝 모델링과 예측머신러닝에서 데이터셋은 특징 벡터와 레이블로 표현된다. 일반적으로 기계 학습 모델을 학습시키는데 쓰이는 것을 train set, 기계 학습 모델의 성능을 평가하기 위해서 사용되는 것이 test set이다. t..