개발 이유
저는 요즘 알고리즘과 프로그래밍에 대한 공부를 위해서 프로그래머스와 백준OJ, 일명 백준의 문제들을 풀고 있습니다. Python 과 Jupyter Notebook, 이하 주피터를 이용해 문제를 풀며, 아쉬운 점을 몇 가지 느꼈습니다. 그러던 중, 그냥 주어진 문제만 풀기보단, 실제로 내가 느낀 문제를 프로그래밍으로 해소하는 것이 저의 프로그래밍 능력 향상에 도움이 될 것이라고 느껴 이를 개발하게 되었습니다.
저는 요즘 알고리즘과 프로그래밍에 대한 공부를 위해서 프로그래머스와 백준OJ, 일명 백준의 문제들을 풀고 있습니다. Python 과 Jupyter Notebook, 이하 주피터를 이용해 문제를 풀며, 아쉬운 점을 몇 가지 느꼈습니다. 그러던 중, 그냥 주어진 문제만 풀기보단, 실제로 내가 느낀 문제를 프로그래밍으로 해소하는 것이 저의 프로그래밍 능력 향상에 도움이 될 것이라고 느껴 이를 개발하게 되었습니다.
\(\operatorname{\sigma}(x)=\frac1{1+e^{-x}}\)
이와 같은 문제로 신경망에서 주로 출력층에서만 이용한다. 치역이 $(0,1)$으로 출력을 확률로 압축하기 좋기 때문이다.
\(\tanh x=\frac{e^x-e^{-x}}{e^x+e^{-x}}=2\operatorname{\sigma}(2x)-1\)
\(\operatorname{ReLU}(x)=\max(0,x)\) 음수 출력이 없어 그래디언트 소실 문제가 없다. 그러나 신경망의 특정 출력이 0이 되면 다시는 돌아오지 않는다.(죽은 ReLU 문제) 이런 현상을 방지하기 위하여 LeackyReLU, PReLU(Parametric ReLU) 등의 변형함수가 개발되었다. 두 함수는 $\max(x,ax)\ (0<a<1)$ 꼴로 동일하나 다음과 같은 차이가 있다.
\(\operatorname{SoftMax}(x_i) = \frac{e^{x_i}}{\displaystyle\sum_{k=1}^ne^{x_k}}\) 모든 출력의 합으로 각 출력을 나누어 n개의 클래스에 대한 이산 확률 분포를 만든다. 따라서 출력의 총합은 1이 된다. 보통 확률 기반의 목적 함수 ‘범주형 크로스 엔트로피’와 함께 사용한다.
VSCode 등 일부 프로그램에서 터미널을 이용하다 보면 종종 다음과 같은 에러가 발생합니다.
PermissionError: [WinError 5] 액세스가 거부되었습니다.
Python 을 주로 사용하는 저는 특히 pip
를 이용하여 이미 설치했던 라이브러리를 업데이트 하는 중에 자주 경험합니다. ## 원인 이는 실행 권한이 주어지지 않아 발생하는 문제로, 악성 프로그램을 막기 위한 조치입니다. 자세한 내용은 Microsoft about_Execution_Policies 문서를 참고하시기 바랍니다.
A1. 네. 가상 환경이 소스 제어에서 벗어나도록 만들기 떄문입니다.
아직 잘 모르겠음. 자세한 관련 글 더 찾아보기!
안녕하세요? 이 글은 저의 첫 GitHub Pages 포스트 입니다.