어떤 값의 분류가 잘 되어있을 확률을 나타낸다. 예를 들자면 아래와 같은 그래프가 있다고 보자. 분리된 선을 기준으로 아래쪽을 파란영역 위 쪽을 붉은 영역이라고 보면 아래는 2개의 Points가 있고 상단에는 3개의 Points가 있다. 이 영역을 다음과 같이 확률로 계산이 가능하다. 우선 하단 파란영역을 보자. 위에 1번 point가 파랑일 확률은? 0.2라고 생각하고, 2번 Point가 파랑일 확률은 0.8로 높을 것이다. 마찬가지로 상단의 3개 points도 각각 0.9, 0.8, 0.1 이라고 생각해 보자. 이 값들을 모두 곱한 값은 아래와 같게 된다. $$ 0.2 * 0.8 * 0.9 * 0.8 * 0.1 = 0.01152 $$ 만약에 모든 포인트가 잘 분류 되었다고 생각해 보자. 상단 poin..
알고자하는 목표 값이 yes or no 식의 classification이 아니라고 한다면 어떻게 분리 해야하는가. Softmax 어떤 결과 값이 나올 수 있는 확률적 수치를 알려줄 수 있다. 예를 들자면 사과 2개, 바나나 1개, 파인애플 0개가 있다고 할 때 사과를 한번 뽑을 수 있는 확률은? $$ y = \frac{2}{2+1+0} $$ 이 될 수 있다. 하지만 만약 음수의 값을 갖게 된다면 문제가 발생 할 수 있다. 파인애플이 -3개라면? 이러한 문제를 해결하기 위해서 음수의 값이 수학적으로 나올 수 없는 exponential을 사용해서 계산을 하게 된다. $$ y = \frac{e^2}{e^2+e^1+e^0} $$ 사과는 66%, 바나나는 24%, 파인애플은 9%가 된다. 코드로는 아래와 같다. ..
sigmoid function은 다음과 같은 수식을 갖는다. $$ sigmoid(x) = \frac{1}{1 + e^-x} $$ 0과 1에 한없이 가까운 수식의 그래프를 볼수 있다. 정확히 50%의 위치는 0.5의 값을 갖는 0이 된다. 만약에 $$ f(x) = 4x_1 + 5x_2 - 9 $$ 가 있다고 할때 50% 확률의 위치를 갖는 좌표는 아래와 같이 계산하면 된다. $$ 0 = 4x_1 + 5x_2 - 9 $$ 즉 0이 되는 좌표가 답이 된다. 예를 들면 $ (1,1) or (-4,5) $ 가 답이 될 수 있다. 뜬금 없지만, sigmoid의 미분에 대해서 추가적으로 작성 하고자 한다. 아래 수식은 차후에 Back propagation에서 사용된다. $$ \sigma^{'}(x) = \sigma(..
(udacity Nural networks에 있는 코드) 2차원에 여러점과 Label이 1과 0으로 주어졌을 경우 random 형태의 weight 와 Bias를 선택하고 해당 선에서 Label 1과 0을 분리하는 코드 기억해야 할 것은 선을 위로 올릴때는 weight와 Bias를 빼야한다 선을 아래로 내릴때는 weight와 Bias를 더해야한다. 이것을 그림으로 보자. $$ 0 = x - 1 + y $$ 의 그래프이다 x 축을 기준으로 오른쪽으로 라인을 옮기기 위해서는 x의 weight를 낮추면 된다. x의 weight를 0.2 빼면 그래프 선이 위로 올라가는 것을 알 수 있다. 마찬가지로 bias를 낮출경우 y의 좌표와 x의 좌표가 올라가는 것을 확인 가능하다. import numpy as np imp..
Object-oriented programming syntax OOP는 시간이 지남에 따라 크고, 코듈화된 프로그램을 쉽게 만들 수있게 해준다. OOP는 end user로 부터 구현체를 보이지 않게 해준다 Procedural vs. object-oriented programming 절차적 프로그램은 Top에서 Down으로 순서적으로 기능을 작동해 나가는 방식이다 OOP는 실세계를 Modeling 할 수 있게 해준다. Objects는 Characteristics와 Actions으로 나눌 수 있다. Characteristics은 Attributes로 Actions은 Methods로 나타낼 수 있다. Classes, objects, methods and attributes Object는 실체화된 하나의 객체를..
Production code : 상용서버에서 live users와 data를 처리하게 된다. reliability, efficiency 등을 만족하며 목표하는 기능에 Meet한 기능이 작동하게 하는 것을 말한다. Clean Code : Readable, Simple, Concise 한 코드를 말한다. Production Quality의 Clean Code는 협업과 유지보수가 쉽게 되어야 한다. Modular Code : functions와 Modules로 분리된 코드를 말한다. 코드를 organized, efficient, reusable 하게 만드는 것이다. Module: 파일의 형태이다. 재사용가능하고 캡슐화된 코드의 집합으로 다른 파일의 코드안에서 작동되게 된다. Write Clean Code 변수..
Computer Vision 을 사용하는 주요 목적 Image Classification : 이미지 분류, Text Detection, Optical character recognition(OCR), Content moderation Object detection : 하나의 이미지 안에 여러개의 다른 목표 Objects를 인식하는 방법 Semantic Segmentation : 픽셀단위 분석을 통해서 큰 개체의 부분 개체를 분석함으로 써 큰 개체를 추측합니다. Activity Recognition : Video에 많이 사용되는 방법으로 움직이는 개체의 변화사항을 Detect하는 기법 DeepLens Device 1000억 floating point 연산이 가능함 (GFLOPS) Device Stream:..
Supervised Learning : 모든 training sample이 label되어 있고 결과 값도 이에 연관된다. Unsupervised Learning : training sample에 label이 없다. 데이터의 분산과 패턴에 따라서 결과가 정의된다. Reinforcement Learning : 어떤 Action에 대한 Reward를 달리하면서 목표한 결과에 다가서게 하는 방법 기계학습의 주요 구성요소 Machine Learning Models 반죽과 같다. 다양한 목적에 따라서 사용될 수 있는 것이다. 문제를 해결하기 위한 코드 단위의 모듈이다. 예) Linear Regression Model Machine Learning Training model과 data를 이용해서 trained mod..