활성화 함수(Activation Function)란? 활성화 함수(Activation Function)는 딥러닝의 가중치를 구하기 위해 사용되는 비선형 함수(Nonlinear Function)이다. 이 활성화 함수는 딥러닝 네트워크에서 노드에 입력된 값들을 비선형 함수에 통과시킨 후 다음 레이어로 전달한다. 일단 가장 단순하게 대표적인 활성화 함수들의 역할을 정리해 보자면 다음과 같다.Sigmoid: 이진 분류 모델의 마지막 출력 계층(Output Layer)에 사용Softmax: 다중 분류 모델의 마지막 출력 계층(Output Layer)에 사용ReLU: 은닉층(Hidden Layer)에 주로 사용 왜 이런 비선형 함수들을 활성화 함수로 사용할까? 만약 선형 함수를 활성화 함수로 사용하게 된다면 간단한..
손실 함수(Loss Function)손실 함수(Loss Function)는 모델의 예측 값과 실제 값 간의 차이를 측정하는 함수로, 모델이 얼마나 잘 학습하고 있는지를 평가하는 데 사용한다. 손실 함수는 모델이 예측한 값이 실제 값과 가까울수록 낮아지고, 차이가 클수록 커진다. 손실 함수는 분야에 따라 비용 함수(Cost Function), 에너지 함수(Energy Function) 등으로 다양하게 부르기도 한다. 손실 함수는 아래 두 가지의 주요 목적을 가지고 있다.모델 학습 방향 제시: 손실 함수 값을 최소화하는 방향으로 모델의 가중치와 편향을 조정한다. 이 과정을 통해 모델이 점점 더 정확한 예측을 할 수 있도록 학습하게 된다.성능 평가 지표: 모델 성능을 수치로 표현하여, 학습이 잘 진행되고 있..
Perplexity(PPL)란 텍스트 생성(Text Generation) 언어 모델의 성능 평가지표 중 하나이다. Perplexity는 단어의 사전적 의미를 고려하여 설명하자면 모델이 예측을 할 때 얼마나 "당황"하거나 "혼란"을 겪는지를 측정하는 것이다. 이는 모델에 따른 테스트 세트의 엔트로피(또는 평균 로그 가능도, average log-likelihood)의 지수로 계산된다. 일반적으로 테스트 데이터셋이 충분히 신뢰할 만할 때 Perplexity 값이 낮을수록 언어 모델이 우수하다고 평가한다. 더 나아가 Perplexity는 자연어 모델에서 손실 함수로도 사용될 수 있다. 수학적으로는 Cross-Entropy Loss의 지수 함수와 같은 형태를 보인다. 수식은 아래와 같다. $$ P(W) = \..
분류 모델을 연구개발하여 완성된 결과물은 분류 성능 평가지표(Classification Evaluation Metrics)를 통해 얼마나 유의미한 모델인지에 대한 평가가 필요하다. 이를 위해 여러 가지 방법들이 있는데 Confusion Matrix, Accuracy, Precision , Recall , F1 score, ROC curve, AUC 등이 있다. 많은 종류가 있지만 모델이 사용되는 환경에 따라 어떤 지표를 이용하여 모델을 평가할지는 연구자의 몫이다. Confusion Matrix(혼동 행렬)Confusion Matrix란 모델이 예측한 값(Predicted Class)과 실제 값(Actual Class)을 비교하기 위한 표이다 True/False는 실제 값과 예측 값이 일치하는지에 대한 ..
문제https://www.acmicpc.net/problem/1065 1065번: 한수어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나www.acmicpc.net 해설1~99까지는 무조건 등차수열이 될 것이다. 비교할 3번째 항이 없기 때문이다. 100 이상은 각 자릿수를 분해하여 계산해 보면 된다. #include using namespace std;int hansu(int x) { int res = 0, th, h, t, n; for (int i = 1; i = 1000) { th = 1; h = int((i - th * 1000) / 100); ..
문제https://www.acmicpc.net/problem/11721 11721번: 열 개씩 끊어 출력하기첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.www.acmicpc.net 해설txt = input()for i in range((len(txt) / 10).__ceil__()): print(txt[i * 10 : (i + 1) * 10])