목록인공지능 (41)
juuuding
Neurons and the brain Neural networks란 뇌를 모방한 알고리즘이다. 인간의 뇌는 한 뉴런에서 다른 뉴런으로 신호를 보내며 생각이라는 것을 하게 되는데, 이러한 특징을 단순화하여 만든 모델이 Neural Networks이다. Demand Prediction 예를 들어 소비자가 옷을 살지 안살지를 예측하는 모델을 살펴보자. 소비자의 구매 여부를 결정하는 요소는 cost, shipping cost, marketing, material로 정했다. 그리고 하나의 layer은 3개의 neurons(units)로 구성하였고, 이 unit들은 각각 affordability, awawreness, perceived quality 에 해당한다. 한 layer은 동일하거나 유사한 특징을 입력 받..
Machine Learning 특화 과정 중 첫 번째 과정인 을 완료하였다. 다음으로 두 번째 과정인 을 수강할 예정이다. 에서 regression과 classification을 큰 틀로 하여 linear regression, logistic regression에 대해 배우고, 이에 맞는 cost function과 gradient descent을 학습하였다. 그리고 마지막 주에는 발생할 수 있는 overfitting에 대해 알아본 후 이를 해결할 수 있는 방법을 배웠고, 그 중 regularization 방법을 자세히 공부하였다. 에서는 TensorFlow를 사용하여 Neural Network에 대해 배워볼 예정이다.
Cost Function with Regularization ovefitting 문제가 발생했을 때 이를 해결하는 방법 중 하나는 정규화를 이용하는 것이다. 정규화 과정은 간단하게 parameter에 penalty를 부여하여 각 feature에 대한 영향을 줄이는 것이라고 할 수 있다. 예를 들어 많은 feature로 model을 생성해 다음과 같은 overfitting이 발생했다고 가정하면, 여기서 feature에 대한 영향을 줄이는 방법이 regularization이다. 영향력을 줄이기 위해서는 해당 feature에 대한 parameter w 값을 작게 해야한다. 이를 위해 w가 클수록 cost function 값을 커지게 하므로써 각 feature에 대한 penalty를 부여하여 w가 적당한 크기의..
이진화 이진 영상이란 화소가 0 (흑) 혹은 1 (백)인 영상을 뜻한다. 이진 영상은 한 화소를 1 bit로 표현할 수 있지만 현대 컴퓨터는 메모리 용량이 크기 때문에 프로그램 편리성을 위해 1byte (8bit)를 사용한다. 컴퓨터 비전에서는 이러한 이진 영상을 "에지만 1로 표현하는 일" , "물체 검출 후 물체는 1, 배경은 0으로 표시하는 일" 등에 활용할 것이다. 명암 영상을 이진 영상으로 바꾸는 과정을 이진화라고 말한다. 이 때 임계값 T를 설정한 후 T보다 큰 화소는 1, 작은 화소는 0으로 바꾸어 이진화를 실행한다. 여기서 가장 중요한 것은 어떻게 이 임계값 T를 결정하느냐인데, 보통 히스토그램의 계곡 근처를 임계 값으로 결정한다. 여기서 말하는 히스토그램은 명암 단계를 가로축으로 두고, ..
The Problem of Overfitting [Overfitting in Regression] 5개의 훈련 데이터가 있는 regression을 살펴보았을 때, 그림 1의 model은 훈련 예제에 잘 맞지 않는 모습을 보이고, 이를 underfit 혹은 high bias라고 표현한다. 그림 2를 보면 훈련 예제들이 model에 꽤 적절하게 잘 맞는 양상을 띄며, 이를 generalization이라고 표현한다. 그렇다면 overfit은 무엇일까? overfit은 앞서 보았던 underfit과 반대로 model이 모든 훈련 예제에 과도하게 잘 맞는 것을 말한다. 훈련 예제를 바탕으로 만들어진 model은 본 적이 없는 새로운 예제에서도 잘 맞아야 하는데, 그렇지 못하고 기존에 있는 예제에 과도하게 맞는 것..
영상 획득과 표현 사람의 눈과 마찬가지로 카메라는 물체에서 반사된 빛이 카메라의 작은 구멍에 들어가 뒷면에 있는 영상 평면에 맺히면서 영상을 얻게 되는 것이다. 이 영상 평면은 사람의 경우 망막, 필름 카메라의 경우 필름, 디지털 카메라의 경우 CCD 센서다. 이렇게 얻은 영상은 초기에 아날로그 신호이며, 영상을 메모리 공간에 저장하기 위해서는 아날로그 신호를 디지털 신호로 바꿔주어야 한다. 디지털 신호로 바꾸기 위해서는 샘플링, 양자화 이 두가지 과정이 필요하다. 먼저 샘플링은 2차원 영상 공간을 가로 N개, 세로 M개로 나눈다. 이렇게 나눠진 공간 중 한 점을 화소(pixel)이라고 하고, MxN을 영상의 크기 또는 해상도라고 한다. 다음으로는 이렇게 샘플링 된 영상을 양자화 해야한다. 양자화는 각 ..
Gradient Descent Implementation logistic regression model(f_w,b(x))에 새로운 x값을 입력하면 레이블이 1일 확률이 예측된다. linear regression과 마찬가지로 cost J를 최소화 할 수 있는 w와 b를 찾는 것이 중요한데, linear regression과 logistic regression은 모델부터 다르기 때문에 Gradient descent를 적용하는 식도 다르다. 우선 아래의 식을 cost가 최소가 되는 값을 찾을 때까지 계속해서 반복하는 것이 Gradient descent이다. 미분 값은 위의 식과 같이 표현할 수 있는데, 이러한 gradient descent 식만 보면 linear regression과 다를 게 없어 보인다. 하..
마우스가 이동한 궤적을 따라 페인팅하는 기능을 구현해보겠다. [붓 형태로 페인팅하기] 아래의 코드에서는 왼쪽 버튼을 클릭하면 파란색, 오른쪽 버튼을 클릭하면 빨간색으로 페인팅하는 결과가 나온다. 여기서 페인팅을 하는 원리는 연속적으로 원을 그리고 그 원의 내부를 채워 선처럼 보이게 하는 것이다. 따라서 cv.circle() 함수를 사용한다. 이 함수의 인수 값에는 영상, 원의 중심, 반지름, 색, 두께를 차례대로 입력한다. 두께에 -1을 입력하게 되면 원의 내부가 채워진다. [Code] import cv2 as cv import sys img=cv.imread("resource/son.jpg") if img is None: sys.exit("파일을 찾을 수 없습니다.") Brushsiz=5 LColor,..