소개
경력:
(현) ML Engineer @ MakinaRocks
(전) ML Engineer @ DearGen
(전) ML Engineer @ DeepBio
(전) Research Student @ UCL NLP Group, Streetbees
(전) Research Student @ ICL Photonics Lab
학력:
University College London (UCL): MSc in Machine Learning (머신러닝 석사) (학점: Distinction, GPA 4.0/4.0)
Imperial College London (ICL): BSc in Theoretical Physics (이론물리학 학사) (학점: First Class Honours, GPA 4.0/4.0)
소개:
5년차 Machine Learning Engineer입니다. (Google DeepMind가 출범하였고, Demis Hasabis가 박사과정을 한) University College London에서 머신러닝 석사를 전공하였습니다. 석사 때는 NLP에서 Knowledge Graph Embedding을 연구하였고, DeepBio에서는 Medical Diagnosis에 적용되는 Image Classification, Segmentation 딥러닝 모델들을 개발하였습니다. Deargen에서는 신약 개발의 Drug Target Interaction와 같은 문제 적용되는 GNN, RNN, Transformer 등등의 다양한 딥러닝 모델들을 적용한 경험이 있습니다. 현재 재직중인 MakinaRocks에서는 제조 현장의 로봇팔의 이상탐지에 적용되는 딥러닝 모델 및 머신러닝 시스템을 구축하고 있습니다.
강의
전체 1수강평
- 딥러닝 이론 + PyTorch 실무 완전 정복
- 딥러닝 이론 + PyTorch 실무 완전 정복
- 딥러닝 이론 + PyTorch 실무 완전 정복
- 딥러닝 이론 + PyTorch 실무 완전 정복
- 딥러닝 이론 + PyTorch 실무 완전 정복
게시글
질문&답변
2024.10.16
9-2 fully connected NN
안녕하세요!좋은 질문 감사합니다!네 Sigmoid을 통과한 logit은 각각 0~1 사이의 값을 가지지만 logit 값들의 합은 1이 되지 않습니다!따라서 예측 확률값으로 변환하기 위해서 Softmax 함수를 사용했습니다!
- 1
- 1
- 28
질문&답변
2024.09.25
Mini-batch Gradient Descent computation time 질문
안녕하세요!좋은 질문해주셔서 또 한번 감사드립니다!네 정확합니다!만약에 GPU에 올릴 수 있는 최대 데이터양이 100개라면 최대로 한번에 병렬 처리할 수 있는 데이터양도 100개가 한계입니다. 따라서 500개의 데이터 샘플들을 처리하기 위해서는 100개로 구성된 미니배치 5개를 차례대로 순회해야합니다.반면에 GPU에 올릴 수 있는 데이터양 (즉 100개) 에 한해서는 샘플 하나하나씩 차례대로 계산하지 않아도 되기 때문에 Mini-batch을 구성하는 데이터 수에 대해서는 연산 소요 시간이 비례하지 않습니다!
- 1
- 2
- 45
질문&답변
2024.09.25
Huber Loss에 대한 질문
안녕하세요! 강의를 재밌게 봐주시고 계셔서 다행이고 저도 보람되네요!Question:왜 전미분이 1번만 된다는 게 단점이 된다는 것인지 이해가 잘 되지 않습니다.Answer: 넵, 47번째 참고 사항 슬라이드에서 설명드리게 되는데,미분가능함”은 해당 함수가 Smooth (매끄럽다)고 Well-behaved (얌전하다)는 의미를 가집니다.즉, 함수의 출력값이 입력값의 변화에 따라 “매끄럽고 부드럽게” 변한다는 의미입니다.매끄럽고 부드러울수록 함수를 extrapolate, interpolate하기 수월해집니다.딥러닝 모델도 어떻게 보면 함수를 잘 근사하도록 학습하는 것이기 때문에매끄럽고 부드러운 함수일 수록 학습 과정에서 보지 못한 input data space에 대해서 interpolate 혹은 extrapolate할 수 있게 됩니다!따라서, 전미분이 1번만 가능한 Huber Loss을 사용하는 것은 "경사하강에 필요한 미분값을 구하는데는 전혀 지장이 없습니다.하지만 (여러번 미분 가능한) 매끄러운 손실 함수는 딥러닝 모델이 학습하는 Loss Surface가 더 매끄러워지게 되는 셈이고 더 안정적인 학습에 도움을 줍니다! (사진)Loss Surface에 대한 일러스트레이션으로 위 그림을 참고하시면 되겠습니다!왼쪽은 덜 매끄러운 Loss surface, 오른쪽은 더 매끄로운 Loss Surface로 보시면 되겠습니다!
- 1
- 2
- 57
질문&답변
2024.08.18
Batch size 가 극단적으로 작은 경우 (예를들어 batch_size =1) Normalization 적용 방안
안녕하세요!변정현입니다!강의가 도움이 되고 있다니 저도 많이 뿌듯하네요 ㅎㅎ좋은 질문 감사합니다~질문에 대한 답변은 아래 첨부 파일로 상세하게 설명드리겠습니다!요약하자면,Q: 하나의 batch 에 단일 샘플만 적용하는 경우를 study 하고 있는데요, Batch-Normalization 을 적용했을 경우 오히려 학습이 잘 안 되는 것 같다:A: 네 맞습니다! Mini-batch의 크기가 작으면 분모로 나눠주게 되는 표준편차가 매우 작은 값을 가지게 됩니다. 분모 값이 매우 작을 때는 분모 값이 조금만 바껴도 나눠진 값이 심하게 요동칩니다.따라서 normalize된 값은 심하게 요동치며 이로 인해서 학습 과정도 불안정해집니다. Q: "batch size 가 극단적으로 작은 경우에 Normalization layer 을 적용 안하는게 더 좋을 수 있나요? 혹은 설명해 주신 table 에 나와 있는 것 처럼 Group Normalization layer 나 Instance Normalization을 적용하는 것이 맞는가요?"A: 네 맞습니다! Mini-batch의 크기가 작을 때 Batch-Normalization 을 적용하면 더 잘 안되는 이유(사진)(사진) Group Normalization에 대한 부연 설명(사진)(사진)
- 2
- 1
- 93
질문&답변
2024.08.15
Normalization 질문
안녕하세요!좋은 질문 감사합니다!아래에 첨부한 그림 참고 부탁드립니다!그리고 x_nhwc은 scalar 값입니다! X 텐서의 n, h, w, c index에 해당되는 요소를 의미합니다!즉, n번째 데이터 샘플의, c번째 channel의, h 번째 height, w번째 width에 해당되는 값을 의미합니다!(사진)(사진)(사진)
- 1
- 2
- 139