오늘 할 일
연구 인력 활용 보고서 작성
TED-How to speak so that people want to listen
코세라 week2 1강 듣기
리액트 섹션1, 2
피팅룸 기능 구현 구체화(함수 부 라이브러리 찾아보기.)
자전거 수요 조사 데이터셋 분석
내일 할 일
메모리즈 라이브러리 조사
coursera - week2 2강
리액트 1장 정독
데이터셋 1개 분석/실습
---------------------------------------------------------------
ex)
x1 = 평당 가격 x2 = 방의 수 x3 = 층 수 x4 = 집의 나이 y = 가격
2104 5 1 45 460
1416 3 2 40 232
...
hΘ = Θ0 + Θ1x1 + Θ2x2 + Θ3x3 + Θ4x4 + ... + Θnxn
x0은 항상 zero vector이다.
=>부동산 예제를 적용하자면,
Θ0 = 집의 최소 가격
Θ1 = 평당 가격
Θ2 = 방의 수당 가격
Θ3 = 층수 당 가격
Θ4 = 집의 나이당 가격
----------------------------------------------------------------------------------
J(Θ) = J(Θ1, Θ2, Θ3, Θ4 ... Θ5)
다변수 선형 회귀의 경사 하강을 적용할 수 있다.
알고리즘들이 비슷한 이유
---------------------------------------------------------------------------------
feature를 scale해서 타원형의 그래프를 원형으로 만든다.
=> 경로를 조금 더 가깝게 만들 수 있다.
-1 <= xi <= 1 피쳐를 범위에 가깝게 하라.
0 <= x1 <= 3 O
-2 <= x2 <= 0.5 O
-100<= x3 <= 100 X
-0.00001 <= x4 <= 0.000001 X
mean normalization
xi를 xi -μi꼴로 만들어라. 그러면 피쳐의 평균이 대략 0이 된다. x0는 항상1이니까
x0에는 적용하지 않는다.
feature scaling은 너무 정확할 필요는 없다.
----------------------------------------------------------------------------------
Debugging : gradient descent가 잘 돌아가게 하기 위한 방법.
gradient descent의 목적은 cost function J(Θ)가 최소화 되는 Θ를 찾기 위한 것.
gradient descent가 수렴하는 반복횟수를 찾는다.
learning rate(알파)가 커지면 gradient descent가 최솟값을 지닌다. 이럴 떈 알파를 작게 해준다.
보통은 알파의 값이 너무 커서 문제가 생긴다.
learning rate가 너무 작으면 천천히 수렴하고 너무 크면 J(Θ)가 반복마다 감소하지 않고, 심하면 수렴하지 않는다.
(Θ)가 매번 감소하지 않는게 주된 문제.
-----------------------------------------------------------------------------------
h(x) = Θ0 + Θ1x + Θ2x^2 이런 경우에는 중간에 값이 떨어지므로, 평수에 따른 집 크기 나타내기에는 부적함
h(x) = Θ0 + Θ1x + Θ2x^2 + Θ3^3 이런 식이나
h(x) = Θ0 + Θ1x + Θ2루트(Θ3) 이런 식으로 나타내서 계산. 이 경우에는 중간에 값이 수렴할 것.
------------------------------------------------------------------------------------
https://gmlwjd9405.github.io/2018/05/11/types-of-git-branch.html
master branch : 제품으로 출시될 수 있는 브랜치. 배포 가능한 상태만을 관리한다.
develop branch : 다음 출시 버전을 관리하는 브랜치. 기능 개발을 위한 브랜치들을 병합하는 용으로 사용.
모든 기능이 추가되고 버그가 수정됐을 때, 배포가 가능해지면 develop 브랜치를 master 브랜치로 병합한다. 평소에 이 브랜치를 기반으로 개발을 진행한다.
feature branch : develop branch에서 새로운 기능 개발 및 버그 수정이 필요할 때마다 분기한다.
release branch : 배포를 위한 전용 브랜치. 이번 출시 버전을 준비하는 브랜치. release 브랜치에서 배포 준비가 완료되면, master 브랜치, dev 브랜치에 병합한다.
hotfix branch : 배포한 버전에 긴급하게 수정할 때, master 브랜치에서 분기하여 master에 다시 병합한다.