본문 바로가기
  • AI 개발자가 될래요

Category105

[딥러닝] pytorch의 autograd 란? torch.autograd 는 신경망 학습을 지원하는 PyTorch의 자동 미분 엔진이다. autograd가 신경망 학습을 어떻게 돕는지에 대해 알아보도록 하자. 신경망의 학습 일단 autograd에 대해 알아보기 앞서 신경망의 학습에 대해 알아보자. 크게 2단계로 나눠진다: - 순전파(Forward Propagation): 정답을 맞추기 위해 추측하는 단계. - 역전파(Backward Propagation) : 추측한 값에서 발생한 오류에 비례하여 매개변수들을 적절히 조절하는 단계. 출력으로부터 역방향으로 이동하면서 오류에 대한 함수들의 매개변수들의 미분값(gradient)을 수집하고, 매개변수들을 최적화. 모델의 예측값과 그에 해당하는 정답(label)을 사용하여 오차(loss)를 계산하고, 역전파하.. 2022. 10. 6.
[딥러닝] loss의 backward? 현재 연구 중인 모델의 성능을 높이기 위해 loss를 변경해보던 중 의문이 생겼다. train 코드에서는 loss.backward() 메소드를 호출하는데, loss 클래스에는 backward 메소드가 정의되어있지 않았다.! 어라?? 클래스 내에 메소드가 없는데 어떻게 호출하지?!? 해서 찾아보다가 한 가지 사실을 깨달았다. forward 함수만 정의하고 나면, 변화도를 계산하는 backward 함수는 autograd 를 사용하여 자동으로 정의된다. 여기서 autograd는 pytorch의 자동 미분 엔진이다. 더욱 자세한 내용은 아래 글을 참고하면 된다. https://hsyaloe.tistory.com/35 [딥러닝] pytorch의 autograd 란? torch.autograd 는 신경망 학습을 지.. 2022. 10. 6.
[C++/OpenCV] 주파수 영역 필터링 / 저주파 및 고주파 통과 필터링 영상을 주파수 영역으로 변환하면 화소의 밝기가 서서히 변화하는 저주파 영역과 급격하게 변화하는 고주파 영역을 공간 영역에 비하여 쉽게 분리할 수 있다. 이렇게 분리된 주파수 영역에 대해서 각 주파수 영역을 강화하거나 약화하거나 혹은 제거하는 등의 처리를 할 수 있다. 주파수 영역 필터링 주파수 영역에서 필터링 과정은 푸리에 변환 계수에 필터 행렬을 원소 간(element-wise) 곱하여 수행된다. 여기서 푸리에 변환 계수는 복소수이기 때문에 필터의 곱셈도 실수부와 허수부의 두 채널에 수행해야 한다. 필터를 어떻게 구성하느냐에 따라 저주파 통과 필터링, 고주파 통과 필터링 등을 구현할 수 있다. 푸리에 변환에 대한 자세한 이야기는 아래 링크에서 다루었으니 참고 바란다. https://hsyaloe.tis.. 2022. 7. 20.
[C++] 소수점 제거 함수들 ceil(), floor(), round() ✨ ceil() 소수점 아래의 숫자가 있으면 무조건 올림 ex) result = ceil(4.2); → result = 5.0 ✨ floor() 소수점 아래의 숫자가 있어도 무조건 버림 ex) result = floor(4.2); → result = 4.0 ✨ round() 소수점 아래의 숫자에 따라 반올림 ex1) result = round(4.2); → result = 4.0 ex2) result = round(4.7); → result = 5.0 2022. 7. 19.
[C++/OpenCV] 공간 주파수, 이산 푸리에 변환, DFT 영상을 데이터로 표현하는 데에는 크게 두 가지 영역으로 나누어 설명한다. 화소값이 직접 표현된 공간 영역과 우주 공간과 같은 변환 영역이다. 변환 영역은 직교 변환에 의해 얻어진 영상 데이터의 다른 표현이다. 여기서는 화소값이 직접 표현되는 것이 아니고 변환 계수(coefficient)로 표현된다. 대표적인 변환은 DCT(Discrete Cosine Transform)와 DFT(Discrete Fourier Transform)이 있다. 공간 주파수란? 영상 신호에서의 주파수는 공간상에서 화소 밝기의 변화율이라 할 수 있다. 이런 의미에서 공간 주파수라는 표현을 사용한다. 공간 주파수는 밝기가 얼마나 빨리 변화하는가에 다라 고주파 영역과 저주파 영역으로 분류한다. - 고주파 영역: 화소 밝기가 급변하는 영.. 2022. 7. 19.
[OpenCV] PCA, Eigenface 이번에는 PCA를 이용한 Eigenface에 대한 소개를 하겠다. PCA에 대한 자세한 내용은 아래 링크에 설명해 놓았으니 참고하길 바란다. https://hsyaloe.tistory.com/29 [OpenCV]PCA PCA 아래에 있는 얼굴 영상을 위한 적절한 기술자는 무엇일까? 영상의 화소값 자체를 특징으로 삼으면 영상을 잘 설명할 수 있을까? 위 영상은 화소가 150X150개 이므로 22,500 차원의 특징 벡터가 생 hsyaloe.tistory.com Eigenface 데이터셋 내의 얼굴 영상들의 고유 얼굴(Eigenface)를 찾는 알고리즘을 Eigenface라 한다. 이 알고리즘을 얼굴 인식 영역까지 확장할 수 있는데, 컴퓨터 비전에서 PCA를 가장 혁신적으로 활용한 사례라고 볼 수 있다. 그.. 2022. 7. 19.