알고자하는 목표 값이 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..
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 문제 내용 두개의 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 문제 내용 두개의 문자열을 비교해서 단 하나의 차이점만 있을경우 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-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:..