본문 바로가기

반응형

전체 글

(76)
softmax classification 여러개의 클래스가 있을때 그것을 예측하는 Multinomial classification 중 가장 많이 쓰이는 softmax classification에 대해 알아보자. softmax classification n 개의 y^ 값을 0 ~ 1 사이의 값으로 바꾸고 각각의 합이 1이되도록 만들어준다. 그다음 ONE-HOT ENCODING을 이용해 max 값을 1.0으로 나머지는0.0으로 세팅해준다. 이렇게 예측 모델은 완성되어지고, 다음으로는 cost function으로 예측이 잘 되었는지 본다. cost function으로 예측값과 실제값의 차이를 최소화함으로써 학습을 완성한다. -> Cross-entropy cost function을 사용한다. 지난 장의 logistic cost와 cross entrop..
Classification Logistic (regression) classification : classification algorithm중 정확도가 높은 algorithm이다. binary classification 0과 1로 enconding하여 결과를 두가지로 분류한다. 이 때 linear Regression을 사용하면 결과가 0이나 1 사이가 아닌 0보다 작거나 1보다 큰 값이 나올수 있고, x값이 커지면 기울기가 바뀌어 0과 1을 구분하는 기준값이 변화한다. -> H(X)를 0과 1사이의 값으로 압축해주는 함수가 필요하다. ->이 함수가 sigmoid function 또는 logistic function 이다. z = wx H(x) = h(z) 이 함수는 어떤 점에서 시작하느냐에 따라 최저점이 달라진다. 이런 지점을 l..
Regression - regression이란? linear regression : H(x) = Wx + b : 많은 곳에서 적용되는 경우가 많다 ex) 공부하는 시간이 길어질수록 공부를 더 잘하게 됨. W,b를 알아내야 가설을 알아낼수 있다. cost function = loss function 우리가 세운 가설 H(x)와 실제 데이터값이 얼마나 차이나는가를 알아본다. 차이가 클수록 더 페널티를 부여하기 위해서 제곱 ( H(x) - y )² 을 많이 사용한다. 결국 cost는 W와 b에 관한 함수가 된다. linear regression의 학습은 cost(W,b)를 최소화 시키는 W와 b의 값을 구하는 일이다! cost function은 항상 밥그릇 모양의 convex function으로 최저점이 존재한다. 이 때 많이 ..
Basic - Machine Learning이 무엇인가? 스팸 필터를 가려내는 일이나, 자율 주행 자동차 등 정확하게 프로그래밍하기 어려운 프로그램들이 있다. 이 때 개발자가 프로그래밍을 일일이 하지 않고 프로그램 자체가 학습하면 어떨까? 이 때 학습하는 방법에 따라 두가지로 나누어진다. 1) supervised 2) unsupervised supervised learning은 traing set 즉 labeled data를 가지고 학습한다. ex) image labeling, email spam filter, predicting exam score 종류로는 regression, binary classification, multi-label classification 이 있고, predicting exam scor..
Middleware Protocol 미들웨어 프로토콜이란? 논리적으로는 application 아래 단에 존재한다. application이 middleware 서비스를 이용하면 분산 시스템을 편하게 이용할 수 있다. middleware가 제공할 수 있는 서비스는 크게 두가지이다. 1) 다양한 middleware 서비스를 구축할 수 있는 protocol 2) high level communication protocol 1) middleware 서비스는 주로 맞춤형 서비스가 아닌 많은 application을 대상으로 하는 범용 서비스이다. 서비스를 예로 들어보겠다. - 인증 : 로그인 서비스 - 권한 : 인증이 된, 로그인이 된 사용자를 대상으로 서로 다른 권한을 부여한다. - 커밋 : operation이 하나일 수도, 여러개일 수 도 있는데 ..
Communication application에서 사용할 수 있는 high level 통신이 어떤게 있는지 살펴볼것이다. 분산 시스템에서는 두 프로세스 사이에 메세지 통신을 하는 interprocess communication이 있어야한다. 컴퓨터 네트워크단에서 우리가 생각하는 메세지를 주고 받으려면 소켓 프로그래밍을 해야한다. 하지만 큰 스케일의 분산 applicaiton에서 그런 소켓들만을 사용해 통신하는 것은 어렵다. 그래서 low level에서 소켓을 사용하고, 그 위의 레벨인 high level에서 사용하기 편한 통신 서비스를 이용하게 해주면 분산 시스템을 구축하기 용이해지고, 서비스를 사용하기 편리해진다. 널리 사용되는 communication model로는 -RPC (Remote Procedure call) -MOM..
Code migration - 2 프로세스를 migration하는 것은 어렵다. resource도 타입에 따라서 옮길 수 있을지, 어려울지 정해진다. 예를 들어 프로세스가 TCP port를 사용하고 있다고 해보자. port나 소켓은 로컬에서만 의미가 있는 정보라서 옮길 수 없다. 다른 예로 사용하던 파일은 URL만 있으면 옮기지 않고 접근 가능하다. 두가지 관점에서 리소스의 종류를 살펴보자 1) process-to-resource 프로세스가 리소스를 어떻게 사용할 수 있을까를 binding으로 표현한 것이다. identifier, value, type 순으로 강하게 바인딩되어있다. - identifier : 가장 강한 바인딩으로, unique한 값이여서 resource를 옮겨야한다. - value : 옮긴 머신에 값이 있을 수도 있어서 ..
Code migration - 1 서버 모드가 많아질수록, 즉 서버 클러스터의 크기가 커질수록 고장날 확률이 높아져서 지속적인 관리가 필요하다. 하나의 서버 머신이 고장날 확률을 p, 서버 노드의 개수를 N, 고장날 확률이 독립사건이라고 가정하면 서버가 고장없이 잘 돌아갈 확률은 (1-p)^N이다. 이 때, self-manage가 가능한 서버 클러스터 노드가 개발될 수 있으면 관리가 수월해질 것이다. Code migration : 실행 중인 프로세스를 다른 머신으로 옮기기 프로세스 부하가 많은 프로세스에서 놀고 있는 머신쪽으로 부하를 옮기면 성능이 향상되므로 code migration 작업이 필요하다. 분산 시스템에서 용량을 최적화하는 일보다 더 중요한 일은 전체 통신 횟수를 줄이는 일(Communication latency)이다. ex..

반응형