본문 바로가기

[ML]

(12)
[ML] 딥러닝 모델 - SVM 산학협력과제(스트레스 예측 모델 개발)을 진행하면서 여러가지 Classification model을 다뤄볼 기회가 있었는데, 그중 하나가 바로 SVM이다. 간단하게 정리해 본다. Support Vector Machine ( SVM )은 기본적이면서 굉장히 유명한 Classification model이다. 여러 데이터들이 있고, 이 데이터 셋이 분산되어 있다고 가정해 보자. 그러면 위 같은 그림일 것이다. 이때 이 데이터 셋을 잘 나누기 위한 방법이 SVM이다. 이때 구분선과 양 데이터의 Boundary에 해당하는 Support Vector의 거리인 Margin을 최대화 하는 Boundary를 찾는 것이 핵심이다. 마찬가지로 구분선이 정확히 구분지..
[ML] 순수 파이썬 코드로 된 딥러닝 모델 분석하기-1. Regression 현재 진행중인 산학협력과제에서도 스트레스 예측 모델을 케라스 코드 단 몇줄로 커버가 가능했을 정도로 머신러닝에서 프레임워크와 라이브러리들의 힘은 매우 강력하다. 하지만 교수님 말씀도 그렇고, 회사 대표님 말씀도 들어보니 머신러닝을 공부하는 데 있어 프레임워크에 계속 의지하다 보면 원리를 깊이 이해하는 능력이 떨어져 결국에는 막히게 된하고 한다. 따라서 기본에 충실해 보고자 이번에는 학교에서 수업 보조교재로도 사용하고 있는 "파이썬 날코딩으로 알고 짜는 딥러닝" 이라는 책을 활용해서 책에서 소개하는 개념과 소스코드를 면밀히 분석하고 뜯어보기로 했다. 물론 기존에 짜여진 코드를 분석하는 정도에 불과하지만, 남이 잘 짜놓은 코드를 보며 공부하는 것도 중요하다고 생각한다! github..
[ML/Lecture] 8. Introduction to Deep Learning 전반적인 내용정리, 기초. 데이터가 주어졌을때, 컴퓨터가 모델을 만들어 prediction을 할 수 있도록 하는것을 machine-learning이라고 한다. 사실 저런식으로 문제를 풀어내기 위해서는 박사 5년차 정도는 되어야 문제 하나를 잘 풀어낼수 있게 된다고 한다;; 도메인 전문가가 feature-extraction을 해주지 않는 이상 machine-learning작업을 하는 것이 쉽지 않았다. 하지만 이런 부분들을 어떤 frame-work이 대신할수는 없을까 하는 생각에서 나온 것이 deep-learning이다. 인풋의 뉴런은 count하지 않으므로, 6개의 뉴런과, 12+8인 20개의 weight, 그리고 biases는 input->h..
[ML/Lecture] 7. Learning from Examples (Part B) Regression이란 value를 예측하는 것, 즉 그 값을 예상하는 것을 말한다. classification은 분류의 문제, label을 어떻게 붙일것인지를 물어보는 것이였다. 위의 예제처럼 집의 면적이 주어지면, 그 가격을 예측하는 문제가 한가지 예시가 될 수 있다. 이에 연계되어, 그 측정치의 포인트들이 classifier가 될 수도 있다. 모델이 1차식으로 주어지면 위와 같이 h(x) = w1x + w2로 쓸 수 있다. 결국 목표는 예측치와 실제값의 차이가 0이 되도록 하는 것이 목표이다. 각 example들의 차의 제곱을 sum한 것이 squared loss이다. 위 식에서 w1과 w0를 통해 전체 값을 minimize하는 값을 찾고 싶은 것이다. 따라서 미분을 통해 linear regress..
[ML/Lecture] 6. Learning from Examples (Part A) Supervised learning과 Unsupervised learning에 대해서 이야기해 보도록 하자. 가설 h가 있을때 이를 학습시키는데에 있어 input과 output pair가 존재하는 것을 supervised-learning이라고 한다. 결과는 classification(분류)를 하여 어느 분류에 속하는 지를 판단할 수도 있고, regression(회귀)를 통해 연속적인 값을 뽑아내기도 한다. 만들어낸 모델이 모든 예제 데이터 셋을 만족하면 모델(가설h)는 consistent하다고 이야기한다. 트레이닝 데이터 뿐 아니라 다른 데이터에도 적용이 잘 되는 경우 generalize가 잘 되었다고 이야기한다. ockham's razor..
[ML/Lecture] 5. Inference in BN burglary부분에서 sum의 부분을 실질적으로 구현하기 위해서는 for loop을 통해 계속해서 계산을 할 수 있을 것이다. 각 variable의 value들에 대해 enumeration을 진행한다고 하면 CPT만큼의 space가 필요하겠지만 time-complexity는 기하급수적으로 늘어나게 될것이다. 위의 트리를 보면 알 수 있다. +는 전체 sum을 뜻하는데 각각의 길목마다 sum을 해서 올라가야 하는 구조이다. 이런식으로 계산하게 되면 중복되는 부분이 많아진다. 즉 계산했던 부분들이 반복되는 문제점이 있다. 이는 낭비이다. 이 부분이 exponential time complexity를 만들어 내는 것이다. 다음 의사코드를 확인해보..
[ML/Lecture] 4. Bayesian Networks 베이지안 네트워크의 간단한 예시를 보여주고 있다. 내용은 간단하다. 도둑이 들면 알람이 울리고, 지진이 일어나도 알람이 울린다. 알림이 울리면 john과 marry가 각각 이를 인식해서 알려준다는 네트워크이다. 이를 확률과 함께 나타내면 아래 그림과 같다. 도둑이 들 확률은 0.001이다. 지진이 일어날 확률은 0.002이다. 도둑이 들고, 지진이 일어났을 경우에 알람은 0.95의 확률로 울린다. 반대로 도둑도 들지않고, 지진도 없는데 알람이 실수로 울릴 확률은 0,001에 불과하다. 또한 알람이 울렸을 경우에, john이 나에게 알려줄 확률은 0.9이고, 알람이 안울렸는데도 나에게 알려줄 확률은 0.05이다. 이런 방식으로 네트워크를 작성해 놓으면 각 사건이 일어..
[ML/Lecture] 3. Uncertainty 이번 챕터는 자연어처리때 했던 익숙한 몇몇.의 내용들이 보인다. 확률에 관한 지식들을 보충해 가면서 들으면 좋을 것 같다. 확률적인 모델들은 딥러닝이 해결하지 못하는 부분들을 해결하는 경우도 많고, 그 기초가 되기도 한다. 기본적인 내용들에 대해서 다뤄보도록 한다. 기본적인 확률에 대한 표기법과 설명이다. 알다시피 어떤 공간 안에서 특정 event가 일어날 확률을 말하며, 그 확률은 0~1사이의 값중 하나이다. 또한 모든 사건이 일어날 확률을 더하면 1이 된다. 어떤 event들이 확률값들과 Mapping된다는 점에서 function 이라고 볼 수도 있다. random variable이라는 것은 바꿔 말하면 '확률변수'이며, 확률현상에 의해 결과값이 확률적으로 정해지는 변수를..
[ML/Lecture] Assignment #1. solving N-Queens (using genetic -algorithm) report. 본 내용은 제가 제출한 리포트의 일부 이며, 워드 리포트 제출물의 내용을, 포스팅을 위해 복사& 붙여넣는 과정에서 과정의 설명을 위한 표나 내용의 일부가 누락될 수 있음을 말씀드립니다. [ 서론 ] 1.1 N(5) queens problem 이번 과제는 다음과 같이 5 by 5 matrix안에 5개의 queen들을 각각 배치하는 경우를 구하는 것입니다. 여기서 queen이란 체스에서 queen 말을 뜻하는 것으로, 해당 queen이 위치한 행과 열, 그리고 대각선 방향에는 말이 위치하면 안됩니다. 이 경우의 수를 따져보면 다음과 같은 10개의 해답이 나올 수 있습니다. 이를 수업시간에 배운 genetic -algorithm을 통해 풀어내는 것이 이번 과제의 목표입니다. 1.2 풀이 방법: Genetic ..
[ML/Lecture] 2. Informed Search Exploration 이전까진 uninformed-search에 다뤘었다. 하지만 정보를 좀 더 사용하면 효율적인 탐색이 가능하지 않을까? informed search에 대해 알아보자. 알아볼 내용은 다음과 같다. 먼저 Informed Search Strategy이다. 이전까지는 node들이 다 같은 value를 가지고 있었다면, 이번에는 evaluation function으로 노드의 탐색할 순서를 정하게 된다. 이때 evaluation func은 위의 슬라이드에서 보이는 것처럼 g(n)과 h(n)으로 나뉘어져있다. 이전에 예제로 사용했던 도시 탐색 그래프를 떠올려 보자. 그래프를 보면 기존에 사용했던 path-cost 이외에도 heuristic function이 추가..