Boostcamp AI Tech

부스트캠프 AI Tech 7기. 15주차 회고록

sejongmin 2024. 12. 2. 20:52

 

Hand Bone Segmentation 마지막 주 입니다.


월요일 (71일차, 2024-11-25)

1. 새로 배운 내용

- momentum-based gradient descent optimizer는 학습 도중 weight norm을 크게 증가시키는데, AdamP는 파라미터마다 weight decay를 다르게 적용하여 단점을 보완함

 

2. 피어세션 내용

- Meta data를 이용해서 StratifiedGroupKfold를 진행할 수 있도록 했다. 손목의 꺾임 정도 말고도 성별, 나이 등 이용할 수 있다.

 

3. 회고

- 팀원들 모두 여러 실험들을 계속 시도하고 있는데, 서버가 한정되어 있다보니까 한 서버를 주구장창 쓰고있기 좀 미안하기도 했다. 서버를 독점해서 쓰는 만큼 못쓰고 있는 팀원들 몫까지 더 열심히 해야겠다.


화요일 (72일차, 2024-11-26)

1. 새로 배운 내용

- Mixed-Precision은 기본적으로 32-bit Floating Point로 학습 시키는데, 16 bit는 Half, 64 bit는 Double, 128 bit는 Quadruple Precision이라고 함.

- Gradient accumulate를 사용하여 CUDA Out Of Memory를 방지할 수 있는데, mini-batch 단위로 update하던 기존 방식에서 n-step동안 gradient를 누적시킨 후, 한 번에 업데이트 하는 방식으로 메모리를 절약할 수 있음.

 

2. 피어세션 내용

- 해상도를 원본사이즈로 올려서 모델이 돌아가는 실험에 대해 이야기를 했다.

 

3. 회고

- 큰 모델이 돌아가면서 사용하는 메모리를 낮추기 위해 여러 방식이 이용되는데, 성능을 크게 낮추지 않으면서 많은 메모리를 절약할 수 있다는 것이 신기했고, 모델 경량화에 대한 내용을 아주 조금 알게 된 것 같다.


수요일 (73일차, 2024-11-27)

1. 새로 배운 내용

- Label Smoothing은 Label에 불확실성을 추가해서 일반화를 높이는 방법. Loss 계산시 간단한 연산 코드를 추가해서 이용할 수 있음.

 

2. 피어세션 내용

- Label Smoothing, Augmentation, Threshold 조정 등 여러 기법을 적용해 보자는 이야기를 했다.

- Label Smoothing의 성능이 낮아졌는데, Confidence 가 낮아졌다고 예상해 Threshold를 조정해 보았다.

 

3. 회고

- 이론으로 알고 있던 내용이었는데, 구현하는데 어려울 것이라 생각하고 시도해 보지 않았었는데, 막상 코드를 보니까 굉장히 간단했다. 이번이 마지막 프로젝트였는데, 그동안 해보았던 것들 위주로 적용하는 경향이 있었는데, 후회가 살짝 된다. 새로운 기술에 도전하고 공부하는 자세를 가지도록 노력해야겠다.


목요일 (74일차, 2024-11-28)

1. 새로 배운 내용

- Morphology 침식 연산은 십자형 구조화 요소 커널을 통과하면서 이미지의 경계 부분을 가늘게 만들고, 외부에 있는 노이즈를 제거함.

- Morphology 팽창 연산은 ㅗ자형 구조화 요소 커널을 통과하면서 이미지의 경계 부분을 두껍게 만들고, 내부에 있는 노이즈를 제거함.

- 침식 + 팽창 연산은 열림 연산, 팽창 + 침식 연산을 닫힘 연산이라고 하고, 노이즈를 효과적으로 제거할 수 있음.

 

2. 피어세션 내용

- 오프라인으로 만나서 진행했기 때문에 따로 피어세션을 진행하지 않고 계속 프로젝트 관련해서 소통했다.

- 프로젝트 마감 직전에 제출한 2개의 모델이 단일 모델 최고 성능을 달성하여 바로 앙상블을 진행하여 높은 성능을 달성했다.

 

3. 회고

- 프로젝트 마감을 팀원들과 만나서 진행하니 더 집중해서 할 수 있었던 것 같고, 성능이 오르는 것을 같이 보면서 마무리하니깐 재미있었다. 뿌듯하게 프로젝트를 마무리하고 뒷풀이까지 진행하니까 팀원들과 더 가까워질 수 있었던 것 같다.


금요일 (75일차, 2024-11-29)

1. 새로 배운 내용

- Multi Modal 을 이용해서 Matadata의 정보와 뼈의 위치, 이름 등으로 caption을 추가해 Segmentation을 할 수 있음.

- Copy-Paste 기법을 이용해서 뼈 모양을 다양하게 추가하여 성능이 증가됨. 뼈의 위치가 많이 중요할 줄 알았는데, 뼈의 모양이 중요함.

 

2. 피어세션 내용

- 오늘 핸드폰이 꺼져 있어서 늦잠 이슈로 이무진의 신호등을 무반주로 부르는 벌칙을 수행했다.

- 오프라인 미팅 여파로 다들 피곤해 해서 간단하게 랩업리포트 역할분담을 했다.

 

3. 회고

- 프로젝트 솔루션 발표를 들었는데, Segmentation 만을 집중하는 것이 아닌, Multi-modal을 이용해서 문제를 해결하려고 한 모습이 인상적이었다. 성능은 다른 모델들보다 낮았지만, 시도하는 것에 큰 의미를 두고 해본 것 같다. 나중에 코드가 오픈되면 참고해서 읽어봐야겠다.