http://www.materialpalette.com/blue/teal
매터리얼 디자인 색깔 지정 가능

'Software' 카테고리의 다른 글

매터리얼 디자인을 위한 색깔 사이트  (0) 2015.02.08
Posted by 공놀이나하여보세
1. 집단 지성 프로그래밍
2. build machine learning system with python
3. Doing Data Science(데이터과학 입문)
4. Think Bayes(파이썬을 활용한 베이지안 통계)
5. Python for Data Analysis(파이썬 라이브러리를 활용한 데이터 분석)
6. 선형대수학 정리 : https://sites.google.com/site/acelab21/lecture/-2012-spring-linear-algebra/material


Posted by 공놀이나하여보세

1. Deep learning
신경망 이용
*Perceptron : 신경망을 분류기로 활용함. 선형 분류기임
선형 분류기는 직선으로 분류함
다층 퍼셉트론 : 비선형 분류기

2. 가우시안
평균값과 분산값을 구한 후 정규분포식에 넣음
(Gaussian Processes for Machine Learning - 사람 따라 다니는데 사용 가능)
1960년대부터 사용
2차원 가우시안
wifi signal을 가우시안을 ㅣㅇ용하여 그림
interpolation smoothing
몇시간 후 예측
Central limit theorem - 모든 걸 가우시안으로 변경

Matrix Inversion Lemma
- Kalman filter나 smoothing에서 사용 가능

Kriging - 금찾기 위해 나온 개념

*흥미있는 주제
Mixture of Gaussian process
GP Latent Variable Model ( GP-LVM)

Gaussian Mixture - n개의 가우시안 함수를 혼합함
EM알고리즘 :

3. k means
K-평균 알고리즘 (K-means algorithm)은 주어진 데이터를 k개의 클러스터로 묶는 알고리즘

4. knn(k nearest neighbors) - 가우시안보다 성능이 좋음. 집단 지성책 3장
훈련 샘플 중에 주어진 x에 가장 가까운 k개를 구하고 그들이 가장 많은 빈도를 보인 부류로 분류
수치형 값 : k개 데이터의 평균(또는 가중 평균)
명복형 값 : k개 데이터 중 많이 나온 분류 항목 선택(또는 가중 값 이용 분류 선택)

5. ANN(Artificial Neural Network) : input -> blackbox -> output
Training ANN means learning the weights of the neurons
weight값을 초기화 함
training 데이터를 이용해 에러값을 최소로 하는 weight값을 찾는다.

*특징
Nonelinear 모델 : Perceptron의 layer들을 이용해 만듬
Nondeterministic : w값이 정해져 있지 않음
튜닝을 많이 해야함
복잡한 함수를 쓰기 위해서는 복잡한 함수를 배워야 함

6. SVM : Support Vector Machine
여백이라는 개념을 분류기 설계에 도입하고 여백을 극대화하는 결정 초평면을 찾아내는 것
(1) 사용자가 설정해야하는 매개 변수가 적다.
(2) 주어진 문제에 대해 최적의 커널을 자동으로 선택해주는 것이 없다. 휴리스틱하게 선택
(3) 일반화 능력이 뛰어나다.
(4) 비선형 SVM에서는 인식 시간이 서포트 벡터의 개수에 비례한다.
(5) 학습 알고리즘 구현이 까다롭다.

*특징
Deterministic 알고리즘
적은 parameter로 정형화할 수 있음
kernel trick을 이용해 쉽게 사용 가능
SVM은 임의의 degree의 polynomial function을 linear time에 배울 수 있음
(1) Linear SVM : 직선 한개로 두 부류를 나눔
(2) Nonlinear SVM : dimension을 바꾸어 boundary를 직선으로 바꿈
- kernel trick 사용
- RBF kernel을 사용하여 여러 모양의 boundary를 만듬
- SVM 구현 : LIBSVM(python 사용 가능), SVM-light

RANKING SVM(RANK SVM)
연관된 데이터를 ordering을 하고 전체 data order 예측

7. clustering(군집화) : unsupervised learning


8. DTW(dynamic time warping)
캡터치 방식의 제스쳐 인식 방법 사용
(1) 시간 순서상에 여러개의 연속적인 데이터를 각각 비교하여 그 두 종료의 데이터가 얼마나 유사한가를 판별해 내는 알고리즘
(2) 유클리드 거리 공식을 이용해 거리를 측정 값이 작을 수록 비슷함

9. Semi Supervised Learning
supervised와 unsupervised의 중간 점
의료 분야에서 많이 사용 됨

10. hidden markov model : HMM
음석, 제스쳐 인식 알고리즘 사용 가능
(1) 상태 전이 확률
- 오늘 비가 올 확률, 날씨가 맑을 확률
(2) 관측 확률
- 비가 올 때 집에 있을 확률, 비가 올 때 외출할 확률
(3) 초기 상태 확률 벡터
- HMM을 기동시킬 때 어느 상태에서 시작할 지를 결정하는데 쓰임
HTK(HMM Toolkit)

11. 최적화 알고리즘
11.2 미분을 이용한 방법
미분이 0이 되는 값으로 최소값, 최대값을 찾음
11.2.2 내리막 경사법
미분이 모두 가능한 것이 아니므로 사용하는 방법
경사가 가장 급하게 변하는 방향을 차아 그 방향으로 이동
전형적인 Greedy 알고리즘
지역 최적 점으로 수렴하고 끝날 가능성이 높음

11.2.3 라그랑제 승수
-Beysian 분류기
사전확률 p(A)  과 우도확률 p(B|A)를 안다면 사후확률 p(A|B)를 알 수있다는 것

12 유클리드 거리 공식

13. 스트링 인식기
Levenshtein 거리 계산
테스트 x와 원본y를 비교
x를 삽입, 삭제, 대치, 앞뒤 단어 비교 를 통해 y로 만드는 데 비용을 계산

Dynamic Programming의 일종
최장 공통 부분 스트링(Lonest common substring) 문제가 됨

14. HMM(Hidden Markov model)

15. 결정 트리
스무 고개 방식으로 구현
Posted by 공놀이나하여보세

http://learnxinyminutes.com/docs/ko-kr/python-kr/
Posted by 공놀이나하여보세
inotebook 설치 방법
https://github.com/psygrammer/bayesianWork/blob/master/djey9538/Python/python_install_guide.md

Posted by 공놀이나하여보세
(1) 양적 특징 벡터
신경망, SVM, 트리 분류기

(2) 질적 특징 벡터
트리 분류기

StatLog프로젝트 : 20여 개의 분류 알고리즘을 20여 개의 데이터베이스에 대해 성능 비교 실험을 수행하고 패턴 인식 시스템 개발에 유익한 가이드 라인을 제공 책으로 출판

12.1

12.2 재 샘플링에 의한 성능 평가
k-fold cross validation : 샘플을 k개의 부분 집합으로 등분한다. 분류기를 k-1개의 부분 집합으로 학습시키고 나머지 한 개의 부분 집합으로 학습된 분류기의 성능을 측정한다. 이 과정을 서로 다른 부분 집합으로 k번 수행하여 얻은 성능을 평균하여 그것을 분류기의 성능으로 취한다. k= N으로 하면 매번 한 개의 샘플로 테스트를 하는 셈이 된다.
Posted by 공놀이나하여보세
유전 알고리즘 : 현재 해에 정규 분포로 얻은 임의 값을 합하는 것으로서 유전 알고리즘의 변이에 해당됨 -> 진화 전략(Evolution strategy)

11.5 메타 휴리스틱
어떤 알고리즘을 구성하는 연산이 상황에 따라 보다 구체적인 알고리즘으로 대체되는 성질을 가진 경우
초기 값에 따라 값이 달라질 수 있으므로 여러개의 초기값으로 수행 후 가장 좋은 것을 취함
Posted by 공놀이나하여보세
class discovery
supervised learning : 샘플의 부류 정보가 주어진 상황에서의 학습
unsupervised learning : 부류 정보가 없음

10.2.2 거리와 유사도 측정
Minkowski 거리 : 가장 널리 쓰이는 거리 척도
p를 변화시키면 여러가지 거리 척도를 만들 수 있다.
유클리디언 거리 : p=2, 가장 널리 사용함
도시 블록 거리(맨하탄 거리) : p= 1

군집화 알고리즘 : 계층, 분할, 신경망, 통계적 탐색
10.4 계층 군집화 알고리즘(hierarchical clustering)
A. 응집 : 작은 군집들에서 출발하여 이들을 모아 나감
B. 분열 : 큰 군집에서 출발하여 이들을 나눔

10.5 분할 군집화(partitional clustering)
- 대부분은 미리 군집의 개수 k를 알려주어야 함
10.5.1. 순차 알고리즘 : 샘플을 순차적으로 군집에 할당
각 샘플을 차례로 살펴보고 가장 가까운 군집까지의 거리가 임계값보다 작으면 그 군집에 속하는 것으로 간주하여 그 군집에 넣는다.
군집의 개수를 자동으로 찾아준다.
임계 값을 지정해 주어야 하는데 추정하기가 어렵다.
10.5.2. k-means : 초기 분할을 가지고 출발하여 계속 개선해 나감
가장 인기가 높고 널리 쓰이는 군집화 알고리즘
k개의 군집 중에 가장 가까운 것을 찾아 그것에 배정하고 군집의 중심을 평균으로 대치한다.
그리고 평균을 중심으로 가장 가까운 것을 찾아 배정한다.
위를 반복 후 변경이 없을 때까지 돌린다.

- MST알고리즘 : 그래프 표현을 만들고 그것을 분할해 나감
- GMM 알고리즘 : 가우시언 분포를 추정하고 그것에서 군집을 찾음
가우시안 알고리즘 -> EM알고리즘

10.6 신경망
군집화를 풀기위해 개발된 신경망 : SOM, ART
SOM(Self organizin map) 자기조직화 맵 : kohonen 네트워크
- SOM은 기본적으로 경쟁 학습(competitive learning) 사용
하나의 샘플이 입력되면 여러 개의 대표 벡터가 경쟁하는데 샘플에 가장 가까운 대표 벡터가 승자가 되어 그 샘플을 취한다.

10.7 통계적 탐색(stochastic searching)
통계적 탐색은 알고리즘 수행 중에 난수를 많이 사용한다. 이 난수가 의사 결정에 참여함으로써 해에 임의성을 부여한다. 따라서 알고리즘을 수행할 때마다 다른 해를 얻게 된다. 이러한 통계적 의사 결정에서 중요한 점은 임의성을 적절히 제어하는 것이다. 통계적 탐색을 사용하는 모든 알고리즘은 이러한 제어 기능을 가지고 있다.
10.7.1 시뮬레이티드 어닐링(Simulated annealing)
기본적으로 내리막 경사법의 구조를 따르는데 지역 최적 점을 벗어나기 위해 현재 해보다 열등한 지점으로 이동(랜덤 발생)하는 연산도 가지고 있다.
10.7.2 유전 알고리즘
해 표현, 선택, 교차, 변이, 대치를 고려해야 함
- 교차 연산 : 두 부모 해를 가지고 자식 해를 만드는데 자식은 부모와 달라지지만 특성을 이어받아야한다.
다른 알고리즘과 협력이 쉽다.-> 혼성 유전 알고리즘
유전 알고리즘이 가진 해를 k-means를 이용하여 지역 최적점으로 수렴 시킨 후 이들에 교차와 변이 연산을 가하는 것.
Posted by 공놀이나하여보세
(1) discriminatory(분별력)
(2) dimensionality(차원)

패턴->센싱->특징생성(특징 추출->특징선택)->분류->부류

Posted by 공놀이나하여보세

Hidden Markov Model의 개요: 순차 데이터나 문맥 의존 데이터를 인식하는 가장 대표적인 모델, 확률을 이용한 모델

(1) 순차 데이터 : 시간성을 갖는 데이터, 대부분 가변 길이를 가짐

(2) 문맥 의존 데이터 : 명시적으로 시간성을 갖지는 않지만 단어 간에 앞 뒤 관계가 있는 문장속의 단어나 단어속의 문자들

(3) 읽어볼만한 논문 

- HMM : rabiner89, Bilmes02, 

- 제스쳐 인식 : wang07, wu99, nam96 -> [Davis02, Rabiner93, Rabiner89]

- 컴퓨터 비전 응용 : Forsyth03, pp.550-567


7.2 마코프 모델

모델 : 수학적 특, 확률 이론을 바탕으로 개발된 확률 모델을 뜻함 (ex:  베이시언 분류기)

시간 t에서의 관측은 단지 가장 최근 r개의 관측에만 의존한다는 가정하에 만듬

0차 마르코프 체인은 과거를 전혀 보지 않고 과거에 독립적임

1차 마르코프 체인은 단지 바로 이전의 관측에만 관련이 있음

2차 마르코프 체인은 바로 이전 두 개의 관측만 본다.

마르코프 모델은 1차 마르코프 체인을 사용한다. 2차 이상은 매개변수가 너무 많아서 현실적으로 적용이 어렵다.


(1) 상태 전이

- 상태 전이 확률 행렬 : 오늘 비가 왔을 때 내일 날씨가 맑을 확률 등을 행렬로 표현함

- 상태 전이도 : state transition diagram


7.3 은닉 마코프 모델(Hidden Markov Model)로의 발전

패턴 인식이 가장 기본적으로 요구하는 작업 즉 훈련 집합으로 학습을 한 후 새로 들어오는 테스트 샘플을 높은 성능으로 분류하는 일을 위해 은익을 추가한 은닉 마르코프 모델로의 발전이 필요

HMM은 차수를 미리 고정하지 않고 모델 자체가 확률 프로세스에 따라 적응적으로 정하도록 한다.


7.3.2 HMM의 예

- 공을 담은 항아리

A. 상태에 해당하는 공 항아리에서 공을 하나 뽑고 색깔을 확인하고 다시 집어 넣는다.

B. 색깔을 o1에 기록한다.

C. 그 상태에 해당하는 카드 항아리에서 카드를 하나 뽑고 번호를 보고 다시 집어 넣는다.

D. 카드 번호의 상태로 이동한다.

E. A.부터 다시 반복한다.


7.3.3 구성 요소와 세가지 문제

- 아키텍쳐

(1) ergodic(어고딕) 모델 : 완전 연결 구조

(2) 좌우(left to right) 모델 : 상태 전이가 왼쪽에서 오른쪽으로 일어남, 음성 인식에서 주로 사용 됨


- 매개 변수

(1) 상태 전이 확률 : 오늘 비가 왔을 때 내일 날씨가 맑을 확률

(2) 관측 확률
- 비가 올 때 집에 있을 확률, 비가 올 때 외출할 확률
(3) 초기 상태 확률 벡터
- HMM(Hidden Markov Model)을 기동시킬 때 어느 상태에서 시작할 지를 결정하는데 쓰임


- 세 가지 문제

(1) 평가 evaluation

(2) 디코딩 decoding

(3) 학습 learning


7.4 알고리즘

평가와 디코딩을 위한 알고리즘은 계산 효율을 위해 동적 프로그래밍을 사용

7.4.1 평가

ⓗ : 모델 HMM이 가지는 매개변수 set ⓗ = (A, B, π) A: 상태 전이 확률 B: 관측 확률 π: 초기 상태 확률 벡터

O : 관측 벡터 (산책, 청소 쇼핑 등)

P(O|ⓗ) : 발생확률

평가 문제 : 주어진 모델 ⓗ 하에서 관측 벡터 O의 발생 확률 P(O|ⓗ)를 계산 하는 것

Q : O를 관측한 상태 열을 알고 있다고 가정

P(O,Q|ⓗ) : ⓗ가 주어진 상황에서 O가 Q에서 발생했을 확률

ex)

(1) πp1의 확률로 q1로 들어간다.

(2) q1에서 bq1(o1)의 확률로 o1을 관측한다.

(3) 전이 확률 aq1q2로 상태 q1에서 q2로 이동한다.

(4) q2에서 bqw(o2)의 확률로 o2를 관측한다.

(5) aq(T-1)qT로 상태 q(T-1)에서 qT로 이동한다. qT에서 bqT(oT)의 확률로 oT를 관측하고 마친다.

(1)~(5)의 관측과 전이를 반복하는 과정에서 발생하는 확률을 모두 곱하면 P(O,Q|ⓗ)

즉, P(O|ⓗ) = 모든 Q에 대해 P(O,Q|ⓗ)의 합

동적 프로그래밍 기법 : 전방 알고리즘 사용

- 이유 : 계산식이 너무 많아지므로 중복된 계산을 피하기 위해 사용


7.4.2 디코딩

Viterbi 알고리즘 사용

디코딩은 모델 ⓗ 하에서 관측 벡터 O를 얻었을 때 O에 해당하는 최적의 상태 열 Q를 찾는 문제

P(O,Q|ⓗ)를 기준 함수로 채택하고 이것을 최대화하는 Q를 찾는다.

Q = arg max P(O,Q|ⓗ)

* arg max(f(x))는 f(x)를 최대로 만드는 x값


7.4.3 학습

관측 벡터 O의 확률을 최대로 하는 모델 ⓗ를 찾는 문제

O로 ⓗ를 직접 구할 수는 없고 중간에 '숨어서' 매개 역할을 하는 변수가 필요하다. 이러한 변수는 이미 3.4.2절의 EM알고리즘에서 등작하였고 은닉 변수(latent variable)라 불렀다.

가우시안 혼합에서는 샘플이 독립 동일 분포에서 발생했다는 가정 하에 요소 분포들을 독립적으로 취급하는 반면 HMM은 분포들이 시간에 따라 관련성을 갖는다고 간주하고 상태 이전 확률을 개입시키는 근본적인 차이가 있다.

알고리즘에서 기대값을 구하는 단계와 우도를 최대화 하는 (Maximum likelihood) 단계로 구성된다.

*일단 더 공부하기 위해서는 다시 3.4절을 공부하고 와야할 것 같음

좌우 모델은 온라인 필기 인식이나 음성 인식 같은 응용에 주로 사용되는데 이런 응용에서는 T가 작다. 대신 하나의 관측이 주어지는 것이 아니라 여러 개가 주어진다. 따라서 다중 관측을 위한 학습이 가능하도록 알고리즘을 변경해야 한다. 이에 대해서는 [Davis02, Rabiner93, Rabiner89]를 참고


7.5 부연 설명

Cambridge 대학의 Machine Intelligence Lab이 개발한 HTK(HMM Toolkit)은 C로 구현된 공개 소프트웨어이다. 한번 사용해 보아야겠다.

Posted by 공놀이나하여보세