Neural Networks
뇌 모방하는 알고리즘,
Perceptron
뉴런 모방, Regression, Classification 가능
K output의 경우
Regression
R^k = R^k(d+1)*R^(d+1)
Classfication같은 경우
softmax function가 max가 되는 그 경우
Training,
Online(한번 case에 하나 training) vs batch(전체 Example다 보고 1스텝)
Online
모든 sample을 볼 필요 없는 경우
시간에 따라 문제가 달라지는 경우
시스템 구성품이 닳고 낡는 경우
mini batch-> 1< K< N
64, 128, 256 등 사용함
Training a Perceptron
Regression, Classification(single sigmoid output, softmax outputs)의 경우 모두 partial derivative가 동일함
y값만 달라짐
Multilayer Perceptron
Variable Z는 input에 nonlinear Fn으로 정의되어있어야만 nonlinear decision boundary 학습 가능
Linear하면 linear combination of another linear combination이기 떄문
중간의 hidden layer를 구성하는 activation fn는 중의 하나 sigmoid(wh^tx)
Multilayer Perceptron을 어떻게 학습할 것인가 -> Backpropagation
Multiple Output인 경우에는
epoch-> training example을 몇차례나 계산하였는가
n이 20개다 epoch가 100이다 하면 batch면 100스텝, stochastic이면 2000스텝임
Two-class discrimination
one sigmoid output y^t면 충분함
update rule은 regression할때가 동일 y^t 구하는건 다름
k>2 class도 동일
Multiple Label
동일 인풋이 한개 이상의 label을 가질수 잇을때
각각의 아웃풋을 바이너리로 놓고 (가지느냐 안가지느냐) 계산함
update rule은 동일
Overfitting
왜 hidden unit의 개수가 많아지면 overfitting 현상이 발생하느냐?
복잡성이 증가하기 때문
overtraining
왜 train을 많이 하면 training error는 개선되지만 validation error가 증가하는 overtraining 현상이 발생하는가
0인 아닌 parameter들이 증가하니 사실상 복잡성이 증가하는것과 동일해지기 때문
Learning Hidden Representation
MLP은 hidden unit이 비선형 basis function일떄 일반화된 선형 모델임
z-space가 데이터로부터 task를 수행하기 위해 제일 적절한 형태로 학습이 되는 것(Human intervation 없이)
hidden unit zh는 code나 embedding이라고 부름
transfer learning : 유사한 task에 code를 사용하는 것
Semisupervised learning: unlabeld 데이터가 많을때, unsupervised learning을 하고, 이것을 labeled data에 적용하는 것
Hidden unit이 2개짜리인 Layer 하나 있고, 8x8이미지 -> input 개수 64고 output 10개(0~9)인 경우에
Hidden Represention이 일종의 Dimensionality Reduction으로도 역할을 할수 있음
Autoencoders
중간에 input d보다 훨씬 작은 h개의 유닛을 가진 layer로 encode하고 다시 decoding하여 original input d와 비슷하게 학습하는 것
노이즈를 끼운 가상 input으로 원래 input을 추출하는 denoise
Word2vec
NLP에 사용할 단어를 embed할때,
Skipgram
linear encoder와 input이 center word고 output은 context word인 decoder을 사용
비슷한 단어는 비슷한 context에 나타나고, 거기서 비슷한 code가 학습됨
'남자 - 왕' 과 '여자 - 여왕' 은 비슷한 벡터를 가질것이라고 예상함
git cherrypick
git cherrypick은 특정 커밋을 현재 branch의 head에 추가해주는 커맨드다.
만약 새 기능을 개발하다가 메인 브랜치의 에러를 발견했다면 에러를 픽스하는 명시적인 커밋을 만들고, 이를 main branch에서 cherry pick하여 재빨리 많은 유저들이 버그를 경험하는 것을 막을 수 있음
실수로 merge하기 전에 pull 요청을 닫았다면 git log등을 참고하려 git cherry pick하여 다시 커밋들을 살릴수 있다.
a - b - c - d Main
\
e - f - g Feature
현재 이런 상황이라고 할때, f 커밋을 메인에 적용하고 싶을떄 cherry pick을 통해서
a - b - c - d - f Main
\
e - f - g Feature
해당 커밋만 가져올수 있게 된다.
이외에도 merge option을 적용할 수 있음
https://www.atlassian.com/git/tutorials/cherry-pick
http://git-scm.com/docs/git-cherry-pick
invalidateQueries
react-query에서 query를 stale 상태로 mark하고 잠재적으로 refetch하도록 설정해주는 함수다.
refetchQuery와 다른 점은, refetchQuery는 observer와 상관없이 강제적으로 query를 refetch하는데,
invalidate는 현재 query를 stale상태로 표시만 해주고, observer가 mount되었을때 이를 다시 refetch해주는 형식이다.
현재 active한 Observer가 있다면 둘의 차이는 없고,
관찰하는 observer가 없다면 invalidate는 observer가 관찰할떄 refetch하게 stale표시만 해주고, refetch는 observer 상관 없이 refetch해온다.
https://github.com/tannerlinsley/react-query/discussions/2468
'TIL' 카테고리의 다른 글
TIL 2021-11-29 NAT2 (0) | 2021.11.29 |
---|---|
TIL 2021-11-27 Deep Learning, Local Model (0) | 2021.11.27 |
TIL 2021-11-22 Firebase 9, webpack-bundle-analyzer (0) | 2021.11.22 |
TIL 2021-11-21 scikit learn, lemmatization, ffmpeg (0) | 2021.11.21 |
TIL 2021-11-17 NAT, WOFF, Tailwind Custom Font 적용 (0) | 2021.11.18 |