개발 이유

Python 과 Jupyter Notebook 을 이용해 백준 온라인 저지를 풀 때 도움을 줄 수 있는 모듈 Backjoon-with-Jupyter 개발일지 입니다.

저는 요즘 알고리즘과 프로그래밍에 대한 공부를 위해서 프로그래머스백준OJ, 일명 백준의 문제들을 풀고 있습니다. Python 과 Jupyter Notebook, 이하 주피터를 이용해 문제를 풀며, 아쉬운 점을 몇 가지 느꼈습니다. 그러던 중, 그냥 주어진 문제만 풀기보단, 실제로 내가 느낀 문제를 프로그래밍으로 해소하는 것이 저의 프로그래밍 능력 향상에 도움이 될 것이라고 느껴 이를 개발하게 되었습니다.

활성화함수

대표적인 활성화함수(Sigmoid, tanh, ReLU, SoftMax)에 대한 요약글

1. Sigmoid

\(\operatorname{\sigma}(x)=\frac1{1+e^{-x}}\)

  • 그래디언트 소실 문제 vanishing gradient problem:
    그래디언트가 0이 됨으로 인해 발생하는 문제
  • 그래디언트 폭주 문제 exploding gradient problem:
    그래디언트가 발산함으로 인해 발생하는 문제

이와 같은 문제로 신경망에서 주로 출력층에서만 이용한다. 치역이 $(0,1)$으로 출력을 확률로 압축하기 좋기 때문이다.

2. tanh: hyperbolic tangent

\(\tanh x=\frac{e^x-e^{-x}}{e^x+e^{-x}}=2\operatorname{\sigma}(2x)-1\)

3. ReLU: Rectified Linear Unit

\(\operatorname{ReLU}(x)=\max(0,x)\) 음수 출력이 없어 그래디언트 소실 문제가 없다. 그러나 신경망의 특정 출력이 0이 되면 다시는 돌아오지 않는다.(죽은 ReLU 문제) 이런 현상을 방지하기 위하여 LeackyReLU, PReLU(Parametric ReLU) 등의 변형함수가 개발되었다. 두 함수는 $\max(x,ax)\ (0<a<1)$ 꼴로 동일하나 다음과 같은 차이가 있다.

  • LeackyReLU: 누수 파라미터 $a$가 사전에 설정하여 변하지 않는 하이퍼 파라미터이다.
  • PReLU: 누수 파라미터 $a$가 학습 가능한 파라미터이다.

    4. SoftMax

    \(\operatorname{SoftMax}(x_i) = \frac{e^{x_i}}{\displaystyle\sum_{k=1}^ne^{x_k}}\) 모든 출력의 합으로 각 출력을 나누어 n개의 클래스에 대한 이산 확률 분포를 만든다. 따라서 출력의 총합은 1이 된다. 보통 확률 기반의 목적 함수 ‘범주형 크로스 엔트로피’와 함께 사용한다.

VSCode 터미널에서 권한 오류가 날 때

2022-01-16 VSCode 터미널에서 권한 오류가 날 때 » PowerShell 을 관리자 권한으로 열어 set-ExecutionPolicy 명령어로 실행 권한을 RemoteSigned 혹은 Unrestricted 로 설정합니다.

문제

VSCode 등 일부 프로그램에서 터미널을 이용하다 보면 종종 다음과 같은 에러가 발생합니다.

PermissionError: [WinError 5] 액세스가 거부되었습니다.

Python 을 주로 사용하는 저는 특히 pip 를 이용하여 이미 설치했던 라이브러리를 업데이트 하는 중에 자주 경험합니다. ## 원인 이는 실행 권한이 주어지지 않아 발생하는 문제로, 악성 프로그램을 막기 위한 조치입니다. 자세한 내용은 Microsoft about_Execution_Policies 문서를 참고하시기 바랍니다.

Hello, World!

저의 첫 GitHub Pages 포스트 입니다.

안녕하세요? 이 글은 저의 첫 GitHub Pages 포스트 입니다.

Pagination


© 2021. All rights reserved.

Powered by Hydejack v7.5.2