[C] Convolution Neural Network
목적 평소에 Python으로 인공지능 공부하면서 GPU 가속부터 최적화 과정에서 항상 아쉬움이 남았다. Low-level에서 메모리 관리하고 싶은 생각이 있어서 C로 구현해봐야겠다고 생각하였다. 수학 함수 이 프로젝트가 끝나고 검색해보면서 GSL 문서를 참고해보니 자료구조를 다음과 같이 설계했었다. matrix_block 구조체에서 데이터 저장을 담당하고, matrix 에서 matrix_block 구조체 데이터 참조하는 방식이다. 다음과 같이 설계하면, Python의 slice 기능을 쉽게 구현할 수 있다. 하지만 잘 모르고 개발한 필자는 수학 함수를 다음과 같이 구현하였다. 1. ReLU (Rectified Linear Unit) 정의: ReLU는 신경망에서 자주 사용되는 활성화 함수이다. 공식: 역할: ReLU는 음수를 0으로 변환하고 양수는 그대로 유지하여 비선형성을 추가한다. 이를 통해 모델이 더 복잡한 패턴을 학습할 수 있도록 한다. 구현: 2. 손실 함수: MSE (Mean Squared Error) 정의: MSE는 예측값과 실제값 사이의 오차를 제곱하여 평균을 구하는 손실 함수이다. 공식: - y^i: 예측값 - y_i: 실제값 - N: 데이터의 개수 구현: 출력 행렬과 목표 행렬 간의 차이를 계산한 뒤, 이를 제곱해 합산하고 평균을 구하는 방식으로 손실을 계산한다.
- C
- Computer Vision
- 김민섭