머신러닝 4

일반인을 위한 머신러닝(4) - 선형대수

머신러닝을 더욱 쉽게 이해하기 위해서는, 선형대수(Linear Algebra)에 대한 이해가 선행되어야 한다. 문과생들이라면 아예 귓동냥으로만 들어봤지 아예 생소한 과목일지도 모르겠는데 '모든 수학과 공학의 뼈대' 라고 부르는 공대과목의 꽃이라고 한다. 따라서 대충 아무 공대생들이 모두 아는 쉬운 개념이라고 생각하고 접근해보자. 사실 수학이 레벨업이 될수록, 고등학교때 한번씩 짚어봤던 문제를 조금 더 어렵고 있어보이는 단어로 바꾸고 추상적인 개념으로 바꾸는 과정이라고 할수 있을터인데, 마찬가지로 이 포스팅에서도 직관적으로 아는 시시한 개념이 어떻게 모르는 단어로 그럴듯하게 포장되어있는지에 대해 최대한 간단하게 이해만 하고 넘어가면 될것이다. 일단 행렬(Matrix)에 대한 이해가 필요하다. 행렬은 데이터..

일반인을 위한 머신러닝 (3) - Cost Function 비용함수

이제예측된 추론결과가 얼마나 파워풀한지를 따져봐야한다. 전에 보았던 지도학습에서 나이와 섹시함에 대한 선형함수를 그렸던 것이 기억나는가? 물론 나이를 먹을수록 섹시함이 늘어난다는 가정은 별로 상식에 벗어나 있지만, 어쩌다 보니 위와같은 직선의 함수가 나왔다고 치자. 그렇다면, 이 직선의 함수가 얼마나 효용성이 있는가는 각 데이터가 표시하고 있는 곳에서 얼마나 멀리 떨어져있는지 거리를 측정한 후 그것을 적당히 합해서 평균친 결과일 것이다. 여기서 바로 다음과 같은 Cost Function의 공식이 나온다.Hypothesis 의 식은, 바로 위의 추론식을 나타낸다. 기본적인 y절편값이 있고 선형적으로 증가한다.결국 Cost Function이란, 위와같은 그래프에서 얼마나 점들이 추론식에 가까이 붙어있는가 (..

실제 이미지로 Scikit-image 적용해보기

이제 샘플데이터가 아닌 실제 이미지를 가지고 여러가지를 해본다. Scikit-Image는 프로그래밍적으로 여러가지 포토샵 비스무리한 필터를 적용할수 있는지라 이미지를 다루는데 있어 꽤나 쓸모있게 쓰일수 있는 것처럼 보이지만, 사실은 기본적인 필터를 사용할수 있는 정도이며, 머신러닝 등을 적용하려면 Scikit-learn을 붙여서 쓰거나 기타 다른 라이브러리를 통해서 개발을 진행하여야 하는것으로 보인다. 일단 다음과 같은 쉬운 명령어로 쉽게 대상이 되는 데이터를 지정할수 있다. 대상이 되는 이미지는 다음과 같다. 내가받은 생일선물 중에서 제일 쓸모없다고 느꼈었는데, 그래도 이렇게 쓸모가 있다니.. import os from skimage import io filename = os.path.join('c:\..

일반인을 위한 머신러닝 (2) - 지도/비지도학습

컴퓨터가 아무리 알아서 한다 치더라도 뭔가 공부를 하라고 누군가가 말해줘야 한다. 학창시절을 떠올려보자. 누군가 공부라고 하기 전까지는 절대 공부하지 않았다. (물론 저는 예외에요.) 그런데 컴퓨터에게 공부하라고 하는 명령을 내려야 하기는 하는데 어떻게 내려야 할까? 뭔가를 초기조건으로 불을 붙여줘야 얘가 혼자 타올라서 열심히 공부하든 아니면 마지못해 눈높이 수학이라도 풀든 하지 않겠는가. 이러한 것들에 대해 머신러닝은 두가지 방법이 있다. 지도학습(Supervised)과 비지도(Unsupervised) 학습니다. 지도학습은 컴퓨터에게 '이게 맞는 답이야~ 알았지? 이제 이거랑 비슷한걸 판단해서 맞는걸 찍어보도록해' 라고 말하는것을 뜻한다. 이러한 지도학습에는 예측과 분류가 있는데, 1) 예측은 일종의 ..