[부스트캠프 AI Tech 7기] Week 2

jinnk0·2024년 8월 16일

2주차 회고

2주차를 시작하며 팀원들과 오프라인 만남을 가졌습니다.👏👏
오프라인으로 만나 직접 이야기를 나누고, 그라운드룰에 따라 말을 놓고 나니 그래도 한층 가까워진 것 같습니다.

피어세션

가까워진 덕분인지, 피어세션 시간에 과제나 학습한 내용에 대해 질문하고 토론하는 시간이 늘었습니다. 팀원들의 질문에 대답하며 제가 이해한 내용을 다시 돌아보기도 하고, 팀원들이 질문하는 내용을 들으면서 나도 저부분을 잘 이해하지 못했는데 나는 왜 더 깊게 파고들어보지 않고 그냥 넘겼을까에 대해 생각하기도 했습니다.🤔
세세한 내용들을 최대한 깊게 이해하고 넘어가기 위해 파고드는 팀원들 덕분에 저도 보다 깊게 학습하고, 그런 모습들을 배워갈 수 있었던 것 같습니다.

멘토링

멘토링 시간에는 멘토님께서 부스트캠프 이후 선택할 수 있을 많은 직무에 대해서, 각 직무별로 하는 일과 필요한 역량에 대해 설명해주셨습니다.
그동안 진로에 대한 고민이 많았고, 특히 어떤 직무가 나와 잘 맞을까에 대해 고민하고 있었는데 멘토님의 설명을 듣고 ML/DL Angineer라는 직무에 대해 많은 관심이 생겼습니다.

한 주간 학습한 내용

😱특히 어려웠던 내용

❗[기본 과제 2]에서 PyTorch를 사용하지 않고 모델 구현을 하면서 backward 함수를 직접 구현하는 부분이 특히 어려웠습니다. [기본 과제 2]가 물론 전체적으로 어려웠기도 했지만 그 중에서도 특히 backward 함수를 구현하는 부분이 어려웠던 이유는 수학적 지식이 다소 부족해서 그런 것 같습니다. 함수의 미분을 직접 구현해야 하는 부분이다보니 특정 함수의 미분법이 이해가 되지 않으면 직접 구현하는 과정이 힘들었습니다.

❗Transformer 부분을 이해하는 것이 좀 어려웠습니다. 다른 부분에 비해 강의를 몇 번씩 돌려봐야만 이해가 되는 부분이 많았습니다. 자연어를 데이터화하는 방식에서, 단순한 텍스트가 아닌 one-hot encoding 방식으로 embedding된 데이터라는 것이 잘 와닿지 않아서 예시를 보면서도 체득하기 힘들었던 것 같습니다.

📚복습 및 보충 학습

📍One-Hot Encoding

한 문장이 주어졌을 때, 해당 문장의 단어 요소들을 토큰화한다. 각 토큰에 인덱스를 부여하여 해당하는 인덱스에는 1, 다른 나머지 인덱스에는 0의 값을 주는 것을 One-Hot Encoding이라고 한다.

예를 들어 "나는 수업을 듣는다"라는 문장이 주어졌을 때, 문장의 각 단어 요소들을 토큰화하여 인덱스를 부여하면, {'나':0, '는':1, '수업':2, '을':3, '듣는다':4}와 같이 표현할 수 있다. 이러한 각 토큰을 one-hot encoding하여 one-hot vector로 표현하면, '수업'이라는 단어의 one-hot vector는 [0, 0, 1, 0, 0]과 같이 표현할 수 있다.

한 주간의 Troubleshooting

⚠️[기본 과제 1]을 진행하는 중 행렬 연산을 수행하는 코드에서 Singular Matrix error가 발생했습니다.

해당 오류가 발생하는 원인을 찾아본 결과, 해당 오류가 발생하는 원인은 역행렬이 없는 특이행렬을 연산하려고 할 때 발생하는 오류였습니다. 그리고 0으로만 구성되어 있는 행렬이 있을 경우 이런 오류가 발생한다는 것을 알게되었습니다. 데이터 변수 초기화를 할 때 설정을 잘 못한 것 같아, 오류가 난 위치에서부터 위로 거슬러 올라가며 데이터 변수들을 확인해본 결과 원인이 된 문제의 변수를 찾을 수 있었습니다.😥

훈련 데이터와 테스트 데이터를 분할하는 과정에서, 크기 설정을 잘못해 훈련 데이터에 모든 데이터를 넣고, 테스트 데이터에 어떠한 데이터도 넣지 않는 바람에 생긴 오류였습니다. 아주 사소한 실수로 생긴 오류였기 때문에 사소하고 간단한 코드도 지나치지 않고 꼼꼼하게 살펴야한다는 교훈을 얻을 수 있었습니다. 또한 오류가 발생했을 때 해당 오류를 분석하고, 발생 원인을 추측하여 이를 해결하는 경험을 했습니다.

다음주 목표

🚩작은 궁금증도 그냥 넘기지 않고 깊게 파고들어 공부하기

0개의 댓글