Softmax function
AI 2021. 7. 17. 23:52

알고자하는 목표 값이 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
AI 2021. 7. 17. 23:29

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(..

Perceptron Algorithm 코드
AI 2021. 7. 17. 23:19

(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..

Find Center of Star Graph
Problem Solving 2021. 7. 14. 23:00

Find Center of Star Graph 문제 내용 Star Network에서 center를 찾아라 접근 방법 2개 이상의 Nodes를 이웃하고 있는 점은 단 하나이다. 아무 두점이나 찾아서 2번 나온 값이 답이다. var findCenter = function(edges) { return edges[0][0] === edges[1][0] || edges[0][0] === edges[1][1] ? edges[0][0] : edges[0][1]; }; 그런데 만약에 Start Networks인데 Center는 하나이지만, 다른 Nodes들도 서로를 이웃할 수 있다면 어떻게될까? 이 경우는 아래와 같이 모든 Points에 대한 Count를 해서 최고로 많은 Count가 나온 값을 답으로 하면 된다. v..

Edit Distance (Levenshtein 알고리즘)
Problem Solving 2021. 7. 7. 23:34

Edit Distance 문제 내용 두개의 word가 주어 진다. 예) 'abc', 'abd' 다음 3개준 하나의 Operation이 가능하다고 할때 delete : char 하나를 삭제한다 input : char 하나를 넣는다. replace : char 하나를 바꾼다. 두개의 word가 같아 질 수 있도록 최소한의 Operation 횟수를 구하라. 접근 방법 처음에는 이와 비슷한 문제인 2021.07.05 - [Problem Solving] - One Edit Distance 를 사용해서 Two Points를 이용한 해결 방법을 모색하였다. 그러나 최종적으로 이와 같은 접근법으로는 해결 할 수없다는 것을 알 수 있었다. 본 문제는 Levenshtein 알고리즘을 알고 있느냐에 따라서 쉽게 문제를 해결..

One Edit Distance
Problem Solving 2021. 7. 5. 23:48

One Edit Distance 문제 내용 두개의 문자열을 비교해서 단 하나의 차이점만 있을경우 true 차이점이 없거나 2개 이상의 차이점이 없으면 false를 return하라 접근 방법 일단 즉각적으로 문제를 해결할 수 있는 경우 2가지를 처리한다. 두 words의 length가 2이상 차이 나는가? 두 words는 같은가? 이 2가지가 문제가 없다면 다음과 같은 2가지로 나뉠수 있다. 2개의 words의 length는 같다 2개중 하나의 word의 length가 + 1 길다 2개의 words중 length가 같은 경우 답이 될 수 있는 경우는 단 한가지 경우밖에 없다. 특정 지점에서 양쪽의 value가 달라야 한다. 상기의 예를 보면 c와 b가 달라지는 지점을 찾았고, 이후의 두개의 value ee..

Object Orient Programing
AI 2021. 7. 4. 12:48

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는 실체화된 하나의 객체를..

Software Engineering 소개
AI 2021. 7. 3. 22:53

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 변수..

AWS DeepLens 소개
AI 2021. 7. 3. 16:18

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:..