본문 바로가기

DataScience/DeepLearning3

[삽질 기록하기] Keras custom trainer 2024.02.25 - [DataScience/Project] - [아이펠톤] DR그알 - DR Segmentation [아이펠톤] DR그알 - DR Segmentation 아이펠에서 아이펠톤이라는 이름으로 프로젝트를 진행했습니다. 여기서 저는 DR그알이라는 팀을 만들고, 팀장 역할을 맡아 프로젝트를 진행했습니다. 사용했던 코드와 최종 발표자료는 https://gi mkk4726.tistory.com 이 프로젝트를 하면서 시간을 가장 뺏어간 삽질입니다. https://github.com/mkk4726/DR-GeuAl/blob/main/code/assets/one_mask/trainer.py 이런식으로 학습시키는 부분을 직접 짜면서 발생한 문제인데, 결과적으로는 인자를 빼먹어서 생긴 문제입니다. 1. 문제.. 2024. 2. 26.
깊은 복사, 얕은 복사 (밑바닥부터 구현하는 딥러닝2) 하나의 모델에는 여러 개의 layer들이 있고 backward를 진행하며 grads를 구합니다. layer들의 grads를 self.grads에 list로 관리를 하는데, 이런 구조에서는 반드시 깊은 복사를 해줘야합니다. self.grads[0][...] = dW 그 이유에 대해 정리해봅니다. 먼저 깊은 복사란 새로운 메모리를 할당받는 것을 말합니다. 보통의 상황에서는 큰 차이가 없지만 리스트와 같은 자료형을 통해 관리할 때는 중요한 차이를 보입니다. 그림 4와 같이 얕은 복사를 할 경우에는 a에 새로운 값을 할당했지만 그 값이 적용되지 않습니다. 이를 쉽게 설명하자면, 같은 이름의 a 지만 얕은 복사를 했기 때문에 새로운 a를 만든 것입니다. 반면에 그림5와 같이 깊은 복사를 할 경우 그 값이 반영되었.. 2023. 7. 18.
[활성화 함수] 활성화함수는 왜 필요할까? 활성화 함수는 신경망에서 입력값과 가중치의 곱의 결과를 변형시켜주는 역할을 합니다. 대표적인 활성화 함수로는 다음과 같습니다. 이런 역할을 하는 활성화함수는 왜 필요한걸까요? 활성화함수는 딥러닝의 비선형성을 보장해주는 역할을 합니다. 활성화함수 없이, 단순히 입력값과 가중치의 곱이 그대로 다음 노드에 연결된다면 딥러닝은 복잡한 선형함수에 그치지 않을 것입니다. 딥러닝이 강력한 이유 중 하나는 비선형적 패턴을 포착할 수 있기 때문이고, 따라서 이를 보장해주는 활성화함수는 굉장히 중요한 역할을 한다고 할 수 있습니다. reference 밑바닥부터 시작하는 딥러닝 출처 그림1 : https://www.v7labs.com/blog/neural-networks-activation-functions 그림 2: ht.. 2023. 7. 15.