이번 주에는 딥러닝 강의가 이틀 동안, 미니 프로젝트 3차가 삼일간 진행되었습니다.
조원들과 함께하는 팀 프로젝트 과제는 이틀간, 그리고 캐글을 이용한 개인 과제는 하루 동안 진행되었습니다.
딥러닝 강의
과적합 문제
- 모델이 학습 데이터의 가짜 패턴까지 학습하게 되면서 발생
- 모델링의 목적은 학습 데이터뿐 아니라, 모집단 전체에 대해 잘 예측하는 것
- 적절한 복잡도를 갖는 모델이 필요
과적합 방지 방법
- 모델 복잡도 조절: 학습 데이터의 패턴을 적절히 반영
- 적절한 복잡도 지점 찾기: Train error와 Validation error 비교
- 딥러닝에서는 Epoch, learning_rate 조절, 모델 구조 조정, Early Stopping, Regularization(L1, L2), Dropout 등을 통해 과적합 방지
딥러닝 모델 성능 높이기
- 데이터 정제 및 전처리, 데이터 양 늘리기
- 모델 구조 조정: 은닉층, 노드 수 조정, 활성화 함수 선택
- 적절한 학습 설정: epochs, learning_rate, optimizer 선택
Functional API
- 다중 입력이나 출력을 처리할 수 있는 모델 구성 방법
- Input 함수로 입력을 정의하고, 레이어를 연결하여 Model 함수로 모델을 선언
RNN을 위한 전처리
- 데이터 분할: 예측 변수(X)와 타겟 변수(Y) 분리
- 스케일링: X는 필수적으로 스케일링, Y는 큰 경우 스케일링 후 모델 평가 시 원래 값으로 복원
- 3차원 데이터셋 만들기: 시퀀스 데이터 처리를 위함
- 데이터 분할: 학습 데이터와 검증 데이터로 분할
SimpleRNN
- 단일 레이어: 출력 형태는 timesteps * 노드 수
return_sequences:
True면 각 시퀀스의 출력을 모두 전달
False면 마지막 hidden state만 전달
SimpleRNN 여러 개 사용 시
- 마지막 RNN 레이어를 제외한 모든 레이어에서는 return_sequences=True
- 마지막 RNN 레이어에서는 True 혹은 False 사용 가능
- True 사용 시, Flatten을 통해 데이터를 펼친 후 Dense 레이어로 연결
RNN의 활성화 함수: tanh
- 하이퍼볼릭 탄젠트 함수 사용
- 그래디언트 소실 문제 완화에 도움
LSTM의 특징
- RNN의 장기 의존성 문제 해결 위해 설계
- Hidden State와 Cell State 두 종류의 상태 값을 관리
- Cell State 업데이트: Forget Gate와 Input Gate를 통해 불필요한 정보는 잊고, 필요한 정보를 장기 기억
- Hidden State 업데이트: 업데이트된 Cell State와 이전 셀의 hidden state, 현재 입력을 사용하여 새로운 hidden state 생성
분석/예측 단위
- Feature 수(열)와 시간 간격(행)을 적절히 결정하는 것이 중요
- RNN/LSTM의 출력 설정: return_sequences
- True: 각 timestep의 특징 값 모두를 다음 레이어로 전달
- False: 마지막 timestep의 값만 전달
미니프로젝트 3차
50등까지가 100점 만점이라고 해서 목표는 50등 안에 드는 것이었어요!
같이 스터디하는 분이 7등을 하셔서 욕심이 생겼지만 결국 이기지 못했네요 ㅋㅋㅋ ㅠ
그래도 배깅, 부스팅, 스태킹 등의 방법을 공부하며 적용해보려고 노력하니 개념을 좀 더 잘 이해하게 된 것 같아요.
발표 때 듣게 된 것인데, 다른 분들은 나노세컨드를 모델 학습에 적용하셨더라고요. 저는 그 부분을 생략하고 진행했더니 성능이 낮게 나온 것 같아요.
같은 반 분들에게 들어보니, '시간'이라는 컬럼을 제거하고 학습을 진행하면 최대 0.89 정도의 성능을 얻을 수 있다고 하더라고요.
이번에 이렇게 진행하면서 느낀 점은, 아무리 모델을 튜닝한다고 해도, 전처리 과정에서의 실수나 문제가 발생하면 모델의 성능이 좋게 나오기 어렵다는 것이었어요.
미프가 끝나고 첫 반 회식을 했어요.
역시 술을 마시니까 모두가 빨리 친해지는 것 같더라고요 ㅋㅋ 다른 분들과 친해질 수 있는 기회가 생겨서 정말 좋았습니다.
코딩 마스터스에 관한 이야기부터 축구, 야구 이야기까지 많이 했어요! 남자들끼리 모이면 당연히 군대 이야기도 빠질 수 없죠 ㅋㅋㅋ
저는 해군 출신인데, 우리 반에 제가 탔던 같은 부대의 배를 타신 분이 계시더라고요. 거의 해군 이야기만으로 2시간을 보낸 것 같아요😀😀
SQLD 합격!, 코딩마스터스 종료!
SQLD 시험을 치고 나서 카페에 가서 가채점을 해보니 합격이더라고요!
그래서 합격 했구나라고 생각은 했었지만, 직접 합격 결과를 보니 기분이 정말 좋았어요.
이전에 회고에서 언급했던 것 같아서 이야기해봤습니다!
코딩마스터스가 이번 주 금요일(3/29)을 마지막으로 종료되었습니다.
잠을 제대로 못 주무시고 열심히 하신 분들도 계신 것으로 알고 있는데, 모두 정말 고생 많으셨어요!
2차 코딩마스터스도 모두 화이팅입니다!
알고리즘 스터디 노션
안녕하세요 에이블러님들 이번주도 수고 많으셨어요!
저는 사실 이번 주에 눈 다래끼가 나려고 하더라고요 약을 먹고 바로 낫긴 했지만,
한 번도 난 적이 없었는데 에이블 하면서 잠이 부족했나?라는 생각이 들었어요 ㅋㅋㅋ
저도 마찬가지지만 다른 에이블러님들도 건강 꼭 챙기셨으면 해요!!
다들 파이팅~!!