일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- sk네트웍스familyai캠프12기
- Rag
- zero-shot
- 소스코드
- C++
- 임베딩
- 링크
- 주간회고
- 컴파일
- 전처리
- 회고록
- sk네트웍스family
- sk네트웍스ai캠프
- ai캠프
- Langchain
- Docker
- 어셈블
- one-shot
- sk네트웍스familyai캠프
- #include
- 중복인클루드
- 최종프로젝트
- 배포
- Fine-tuning
- 헤더가드
- openai
- AWS
- 12기
- FastAPI
- few-shot
- Today
- Total
ansir 님의 블로그
SK 네트웍스 family AI 캠프 7주차 회고( 2025-04-07 ~ 2025-04-11 ) 본문
SK 네트웍스 family AI 캠프 7주차 회고( 2025-04-07 ~ 2025-04-11 )
ansir 2025. 4. 14. 20:49The four Fs
FACTS
이번 주는 PyTorch를 사용하여 딥러닝 모델을 설계하고 만드는 법을 배웠습니다. 저번 주에 TensorFlow로 구현해봤던 모델들을 PyTorch로 구현해보고 전이학습, 가우시안 노이즈, 인코딩, 디코딩, 컴퓨터 비전 등 새로운 개념도 배웠습니다.
수업 내용
- 퍼셉트론
- 다층 분류
- VGG
- 전이 학습
- ResNet
- RNN
- LSTM
- GRU
- CAE Convolutional AutoEncoder
- 컴퓨터 비전
실습 예제
- 붓꽃 데이터 예측
- 사인 함수 예측
- 보스턴 집 값 예측
- 손글씨 분류
- 사진 분류 CNN vs VGG
- Netflix 주가 예측
- 로또 번호 예측
FEELINGS
PyTorch는 합성곱, 순환 레이어 등 TensorFlow를 사용하여 만들어봤던 모델들과 유사한 방법으로 구현할 수 있었습니다. TensorFlow를 활용하여 딥러닝 모델을 만드는 것도 아직 서툰데 PyTorch를 잘 배울 수 있을까 걱정이 되었지만 레이어, 활성함수, 손실함수 등 수식이나 구조는 비슷했기 때문에 비교적 쉽게 이해할 수 있었습니다.
TensorFlow의 keras로 딥러닝을 배울 때는 개념 설명의 비중이 더 높았지만 PyTorch로 배울 때는 실습의 비중이 더 높았습니다. 강사님이 보여주시는 예제를 따라해보면서 딥러닝 모델 자체의 구조에 대한 이해가 많이 높아진 것 같습니다.
수업 때 따라해본 예제 말고도 다양한 예제들을 찾아서 개인적으로 만들어 보는 것도 개념이나 구조에 대해 공부하는데 많은 도움이 되었습니다.
개인 실습 예제
- CIFAR-10 이미지 ResNet + BatchNorm으로 분류
- 사인 함수 예측으로 ReLU, Sigmoid, Tanh 비교
- CIFAR-10 이미지 VGG16으로 분류
- KoCoNovel 한국 근현대 소설 데이터로 문장 생성 LSTM 모델 구현
FINDINGS
저번 주에는 딥러닝에 어떤 개념이 있고 구조가 어떻게 생겼는지, 어떤 수식을 기반으로 만들어졌는지를 알게 되었다면 이번 주는 왜 이렇게 사용하는지, 왜 이렇게 동작하는지 이해하는 시간이었습니다. 가장 큰 깨달음은 딥러닝 모델의 은닉층 구조와 활성함수의 역할과 동작 원리입니다. 추가로 재미있었던 점은 문장 생성 모델을 구현해본 경험이었습니다.
은닉층 구조
PyTorch를 사용하여 모델을 만들 때는 TensorFlow때와 다르게 모델 클래스를 사용자가 정의해서 사용했습니다. 물론 TensorFlow도 사용자가 레이어 구조를 정의해주고 사용하지만 PyTorch에서는 모델 클래스를 생성해야 했기 때문에 내부 구조를 더 쉽게 파악할 수 있었습니다. 클래스의 생성자에서 입력층, 은닉층, 출력층, 활성함수를 정의해주고 forward() 메서드에서 그 구조를 설계했습니다. 그 과정에서 각 층들이 데이터를 어떻게 받고 내보내는지 이해할 수 있었습니다.
- forward는 순전파 과정이라고도 불리우며, 입력 데이터를 넣으면 각 층을 거쳐서 최종 출력이 계산되는 과정이 이루어지는 메서드입니다.
활성함수
활성함수는 머신러닝을 배운 5주차 내용이지만 이제서야 제대로 이해한 것 같습니다.
활성함수는 선형 데이터를 비선형으로 바꿔주는 역할입니다. 선형에서 비선형으로 바꿔준다는 말은 y = wx + b와 같이 직선적인 관계의 데이터를 꺾어줘서 더이상 직선이 되지 않게 해준다는 것입니다. 비선형으로 바꿔주는 것이 중요한 이유는 데이터가 선형으로만 이루어져 있다면 모델을 수없이 훈련을 시키더라도 결과는 선형으로만 나오기 때문입니다. 이를 활성함수가 비선형으로 바꿔줌으로써 전체적으로 곡선처럼 표현이 가능해져서 더 복잡한 계산이 가능해집니다. 즉 예측의 표현력을 높여주는 것( 활성 )입니다.
문장 생성 LSTM 모델 구현
IMDB 데이터셋을 가지고 영화 리뷰를 보고 긍정적인지 부정적인지 감정 분석 RNN 모델을 만들어보다가 문장 분석이 가능하니 문장 생성도 해보고 싶다는 생각이 들었습니다. 평소 소설을 좋아하고 AI를 이용한 게임 세계관 구축에도 관심이 있었기 때문에 아이디어가 스치자마자 바로 실행에 옮겼습니다. 데이터는 "KoCoNovel 한국 근현대 소설 50선 데이터"( https://github.com/storidient/KoCoNovel )를 사용하였고 LSTM을 사용하여 구현하였습니다.
- 생성한 문장: 그는 결국 김 진사광도 그날 밤 현보는 서로 버리아는 남의 집 며느리가 죄를 지고 나중에 때룩인 만족한 몸으로 동복도 없는데 그 쇠상, 한판에서, 듣고 높았다. 제가 이 바가가 정작때의 앞에서 배울 소리를 가다듬어 "그걸 가만둬?" 양순은 일복의 팔을 잡아 보고 앉았던 이전에 희고 도리어 그 여인의 적심이 있었다.
한국 근현대 소설 느낌으로 문장이 만들어 지는데 당연하면서도 신기합니다.모델을 훈련할 때 문자 단위로 문장을 생성하였기 때문에 문장 구조가 부자연스럽습니다. 이 모델을 만들어 보면서 문장을 생성하는 모델을 만드는 방식이 문자 단위 생성, 단어 단위 생성, 문장 단위 생성이 있다는 것을 알게 되었습니다. 자연스러운 문장을 생성하기 위해서는 단어 단위 생성이나 문장 단위 생성 방식으로 모델을 만들어야 합니다.
FUTURE
이번주에 다양한 주제를 가지고 예측, 분류 모델을 만들어 보면서 해보고 싶은 것들이 많이 생겼습니다. 아무래도 게임 분야에 종사했다보니 게임 개발 쪽으로 아이디어가 많이 떠오르는 것 같습니다.
- 게임 엔진 자연어 명령 프롬프트
- 게임 세계관 및 시나리오 생성 LLM
그리고 다음주에 있을 단위 프로젝트를 준비하기 위해 여러 모델들을 다뤄보고 성능을 개선해보는 연습을 해봐야겠습니다.
'SK 네트웍스 family AI 캠프 > 주간 회고' 카테고리의 다른 글
SK 네트웍스 family AI 캠프 9주차 회고( 2025-04-21 ~ 2025-04-25 ) (0) | 2025.04.30 |
---|---|
SK 네트웍스 family AI 캠프 8주차 회고( 2025-04-14 ~ 2025-04-18 ) (0) | 2025.04.22 |
SK 네트웍스 family AI 캠프 6주차 회고( 2025-03-31 ~ 2025-04-04 ) (0) | 2025.04.08 |
SK 네트웍스 family AI 캠프 5주차 회고( 2025-03-24 ~ 2025-03-28 ) (0) | 2025.03.31 |
SK 네트웍스 family AI 캠프 4주차 회고( 2025-03-17 ~ 2025-03-21 ) (0) | 2025.03.24 |