Facts : 딥러닝 핵심 개념인 프레임워크, 전이학습, 파인튜닝, optimizer의 계보에 대해 배우고, 오후엔 VGG16 모델로 캐글 강아지 품종 분류 실습을 진행함
Feelings : 이론 공부는 가장 중요하면서도 지루한 일이다. 오전에 optimizer가 어떻게 발전해왔는지 배울 때만 해도 그런가보다 했는데, 오후에 Streamlit으로 SGD와 Momentum, Adam 등 optimizer를 시각화해보면서 차이가 확실히 와닿았다. 역시 시각화 도구는 중요한 것 같다.
Findings : 층이 깊다고 무조건 성능이 좋아지지 않는다. 전이학습 시 CNN 레이어를 freeze하면 학습 효율이 올라간다. 파인튜닝은 특정 태스크 한정 과도하게 특화되면 그 태스크만 잘하게 되는 trade-off 문제가 있다. 그래서 등장한 게 RAG라고 한다.
Future : 오후에 실습했던 optimizer.py를 돌려보며 AdaGrad, EMA 기반 옵티마저까지 추가로 비교해보았다.
📌 오늘의 핵심 정리
노션에 정리한 내용인데 아직도 복습하면서 추가 중이라 일부만 올리기 !
근데 토글 설정했는데 왜 작동을 안 하지?
30일차
날짜: 2026-02-10
Four F’s of Active Reviewing
Facts: Batch Normalization 개념 학습 및 feature_extraction, fine_tuning 두 모드로 구현하고 강아지 품종 분류 모델을 실제로 서빙해서 추론까지 진행해봤다.
Feelings: 집에서 임시보호 중인 강아지 사진을 넣어서 품종을 유추해봤는데, 사진이 찍힌 방향에 따라 빠삐용으로 유추하기도 하고 셔틀랜드 쉽독으로 유추하기도 하는 게 신기했다. 물론 둘 다 아니었다 ㅋㅋㅋ 성능을 높이려면 더 많은 데이터를 학습시키면 해결될까? 하는 궁금증도 생겼다.
Findings: feature_extraction과 fine_tuning 차이가 `requieds_grad`설정 한 줄로 구현한다는 걸 깨달았다. 또, trian, val에서 model.train()과 model.eval()을 반드시 구분해야 Dropout과 BN이 제대로 작동한다.
Future: 실습 모델 복습!
31일차
날짜: 2026-02-11
오전 수업은 병가로 빠진 날.
오른팔 회전근개 근육이 문제인지 한 달째 저릿뻐근한 느낌이 들어서 주사를 맞았다. (운동 부족인가?)
의사 선생님께 주사 아프냐고 3번 물어보니까 강아지 인형을 안겨주셨다 🐶
그리고 기가 막히게 주사를 잘 놓으셨다. 어떻게 들어가는 느낌이 안 날 수 있지?!
Four F’s of Active Reviewing
Facts: YOLOv8 모델로 객체 탐지, 포즈 추정, 세그멘테이션을 실습했다. 실시간 웹캠을 켜서 학습 시킨 모델을 적용해보는 실습도 진행했다.
Feelings: 웹캠 상에서 내 신체 관절이 실시간으로 잡히는 게 신기했다.
Findings: 층이 깊다고 무조건 성능이 좋아지지 않는다. 전이학습 시 CNN 레이어를 freeze하면 학습 효율이 올라간다. 파인튜닝은 특정 태스크 한정 과도하게 특화되면 그 태스크만 잘하게 되는 trade-off 문제가 있다. 그래서 등장한 게 RAG라고 한다.
Future: 오후에 실습했던 optimizer.py를 돌려보며 AdaGrad, EMA 기반 옵티마저까지 추가로 비교해보았다.
눈, 코, 귀, 어깨, 팔꿈치, 손목 관절까지 맵핑되는 게 신기함
사진은 짝궁의 신상보호를 위해 블러처리를 해줬다 😃
32일차
날짜: 2026-02-12
2차 팀프로젝트 팀원이 정해졌다.
가든님
가든님과 한 번 더 같은 팀이 되었는데, 개인 사정으로 인해 이번 프로젝트엔 함께 하지 못했다.
다른 팀보다 팀원이 적은데 프로젝트 주제는 딥러닝이라니!
프로젝트가 무사히 끝나기를 희망하며... 걱정 반, 불안 반인 요즘이다.
샤인님 / 어름님 / 맥시스트(maxeast) 님
Four F’s of Active Reviewing
Facts: ResNet과 Transformer 논문을 리뷰하고, Pytorch로 ResNet50 전이학습 모델을 구현해봤다. 강화학습 이론(마르코프 성질, 벨만 방정식, 정책평가)에 대해 배움
Feelings: ResNet이 skip connection의 한계점이던 "층을 많이 쌓는다고 성능이 좋아지는 게 아니다" 문제를 해결했다는 점이 인상적이었다. 강화학습에서 룰베이스 최대 점수 63점이 학습 후 200점까지 올라가는 걸 직접 확인할 수 있었다. 실습을 통해서 단순 규칙과 학습 차이를 볼 수 있어서 좋았다. 다만 벨만 방정식이랑 discount reward 계산은 복습과 이해가 더 필요할 것 같다 😭
Findings: 전이학습에서 feature_extraction은 FC layer만 학습하므로 Adam + le-4 학습률이 적합하다. 파인튜닝의 경우 pretrained weight를 건드리므로 SGD + 아주 작은 학습률이 필요했다. 강화학습에서 reinforce는 on-policy 방식을 사용했다. 내가 직접 경험했던 데이터만 학습에 사용하기 때문에 sample efficiency가 낮다는 한계가 있었다.
Future: shortcut 함수 구조랑 DQN(off-policy) 알고리즘을 추가로 정리하기
33일차
날짜: 2026-02-19
설날에 푹 쉬고와서 좋았다.
팀 프로젝트만 시작되면 마음이 급하다.
공식적으로는 다음 주 월, 화가 프로젝트 기간이지만,
솔직히 어떻게 2일 안에 그럴싸한(내가 만족할만한!) 결과물을 내놓을 수 있단 말인가..
점심에 짧은 회의, 쉬는 시간도 활용한 틈새 회의로데이터를 정했다.
결국 이 날은 늦게 잤다.
ERD 설계 후 데이터를 분할했다.
미리미리 해둬야 다음 단계가 편하다.
Four F’s of Active Reviewing
Facts: SVD(특이값 분해)의 수식 구조 학습, 실제 이미지에 적용해서 복원 품질 비교해보기 polars로 IMDB 영화 데이터 전처리 및 TF-IDF, 코사인 유사도 기반 콘텐츠 추천 시스템 구현하기
Feelings: 구글 스프레드 시트로 25기 동기들이 근처 음식점 평점을 매기고 행렬 분해를 했다. 특정 사람의 예상 평점을 예측하는 모델을 만드는 실습이었는데, 누가 시트에 헛소리를 적어둬서 데이터 처리에서 오류가 났다. ㅋㅋㅋㅋ 현업에서도 이런 식으로 데이터 적어야 하는 곳에 '졸려.', '퇴근하고 싶다'같은 값을 적어둬서 전처리가 중요하다고 하셨다. 뭔가 웃겼다.
Findings: 콘텐츠 기반 추천 시 콜드 스타트 문제가 발생할 수 있다. 콜드스타트 문제란 신규 유저나 신규 아이템의 경우 협업 필터링(사용자와 아이템 평점 행렬을 P, Q로 분해해 SGD로 학습하는 구조)이 작동하지 않는 것을 말한다.
Future: 오늘 내용 복습 및 프로젝트 준비!
34일차
날짜: 2026-02-20
데이터를 미리 나눠둔 게 한 수였다.
생각보다 프로젝트가 수월하게 진행되고 있다. 아마도...
Four F’s of Active Reviewing
Facts: K-means 클러스터링, Elbow Method, 실루엣 지수를 활용해 최적 K값을 선택하는 방법 실습 밀도 기반 클러스터링 DBSCAN 학습 후 우버 승차 위치 데이터에 적용해보기
Feelings: Elbow Method만 봤을 때는 K=3이 최적처럼 보였는데, 실루엣 그래프로 시각화하니 K=2가 더 나은 경우도 있었다. 데이터 해석 시엔 단일 지표만 믿어선 안 되겠다는 교훈을 얻었다.
Findings: K값 선택 시 inertia만 보지 말고 silhouette score, Calinski-Harabasz, Davies-Bouldin 지수를 함께 보면서 음수 실루엣 비율까지 확인해야 한다. 이런 점에서 DBSCAN은 k값을 설정하지 않아도 되고 이상치도 -1로 따로 분류해줘서 좋았다. 다만 eps와 ㅡin_samples 값 설정에 민감하니 주의해야 한다.
Future: 프로젝트 데이터 모델링하기
📖 주말 복습
잠시 멍때리는 시간을 가지면 집중력이 오른다 ^^
팀프로젝트 주제를 병원 노쇼 데이터로 정했다. 각자 모델 하나씩 주말에 돌려오기로 했다. 내가 맡은 건 XGBoost였다. 모델의 특성에 대해서 공부하면서 튜닝하면서 피쳐 엔지니어링도 해봤는데 말이 학습이고 완전 반복실험 노가다였다
날씨도 노쇼에 연관이 있을 거라 가정하고 날씨 API도 끌어왔는데 날씨는 전혀 상관이 없었다. 🥲 데이터 누수도 고려하다보니 신경쓸 점도 많았다.
학습 데이터가 많지 않아서 아무리 threshold를 변경해도 더 이상 성능이 올라가질 않았다. 사용하는 데이터가 범주형 데이터라 CatBoost를 추가로 도입했다. 그나마 CatBoost가 더 좋아서 최종 모델을 CatBoost로 선정했다.
댓글