본문 바로가기

이론4

CNN과 transformer에서 FLOPs, #param, throughput 계산, 의미, 관계 딥러닝 모델 논문읙 실험이나 결과 부분에 꼭 나오는 것. FLOPs, #param, throughput 3가지 이다. 그런데 나는 이걸 계산하지도 못하고 의미도 모르고 관계도 모른다. 이번 포스팅에서 완벽히 정리하고 가자. 1. FLOPs FLOPs는 (Floating Point Operations)의 약자로, 주로 모델의 계산 복잡성을 측정하는 데 사용된다. 딥러닝 모델의 연산 중에 많은 것은 '부동 소수점 연산(FLOP)'이고 이걸 몇번 하는지가 FLOPs다. FLOPs가 높다 = 연산량이 많다, 무겁다 FLOPs는 입력에 따라 크기가 변한다. 따라서 단순히 파이썬 라이브러리 등으로 구하면 오류가 날 수 있다. 공식을 알아두고 검산할 필요가 있다. [FLOPs 계산 공식 (CNN)] FLOPs = H.. 2024. 3. 19.
learning rate와 batch size 관계 딥러닝 모델로 학습을 하면서 가장 많이 겪는 문제점은 hyperparameter 문제다.learning rate와 epoch를 어떻게 결정하는지가 가장 문제다.이 문제는 어떤 천재에게 물어도 같은 답이 나온다."노가다 말곤 방법이 없어요."오늘은 그중에서 먼저 learning rate에 대하여 고찰해보자. 일단 간단하게 설명하면 epoch와 batch size를 고정한뒤,위 그래프를 참고해서 적절한 good elarning rate를 찾으면 된다.그래프를 다 그려가며 비교해보고 좋은 learning rate를 고르자. 즉 learning rate를 x1, x2, x4, x1/2, x1/4 로 학습하며 loss를 그린 뒤에위 그림을 참고하며 learning rate를 고르면 된다... 2023. 11. 7.
옵티마이저(Optimizer) 설명, 의미, 고찰 - SGD? Adam? 딥러닝을 배우면서 optimizer에 대하여 한번쯤은 듣게 될거다. 하지만 이게 정확히 뭔지 모르고 그냥 대충 Adam을 사용하면 된다~ 정도로 알고 있을거다. 그게 맞다....(?) 물론 초급적인 과정에서는 그게 맞다. 하지만 조금만 깊이 가면, transformer 까지만 가면 반드시 차이를 알아야 한다. 딥러닝에서는 다양한 알고리즘을 사용한다. 그리고 이 다양한 알고리즘에서 파생된 여러가지 종류의 레이어가 있다. 가장 대표적인 것이 다음 3가지다. 활성화 함수, 손실 함수, 최적화 함수 이 세가지는 정확하게 이해해야한다. 안그러면 서로 헷갈리기도 하고 자꾸 찝찝한 마음이 들거다. 여기서 최적화 함수가 다른말로 옵티마이저. optimizer 이다. 정의 옵티마이저를 한줄로 정의하면 '최소의 loss로.. 2023. 10. 12.
오차 역전파(back propagation) 설명, 의미, 고찰 정의 오차 역전파(Backpropagation)는 인공 신경망에서 가중치를 조정하여 출력을 원하는 결과에 가깝게 만들기 위해 사용되는 알고리즘. 쉽게 설명해주겠다. 신경망은 일종의 함수라고 볼 수 있다. 이 함수의 가중치(w1, w2, w3)는 학습을 할 수록 업데이트 된다. 가중치 업데이트를 어떻게 할 것인가에 대한 알고리즘이 back propagation이다. 아래 딥러닝의 전체 과정에서 보면 어디에 위치한 과정인지 볼 수 있다. (인풋 입력 -> 네트워크 통과 -> 출력 -> 손실함수 계산 -> !오차 역전파! -> 가중치 업데이트) -> 처음부터 반복 오차 역전파를 잘 하는법 오차 역전파를 잘 하려면 다음과 같은 조건을 만족하면 된다. 1. 오차를 잘 구한다. 2. 경사 하강법을 이용해 직전 가중.. 2023. 9. 18.