반응형

손실함수 분류 문제

손실 함수에서 분류 문제의 대표인 교차 엔트로피에 대해 알아본다.

이전 포스팅에서 회귀 문제에 대해 알아봤다.

과거의 정보를 활용해서 결과를 예측하는 방식이 회귀다.

과거 정보(입력값)에 따라 결과가 결정(종속적)된다.

2025.05.14 - [인공지능(AI)/딥러닝(DeepLearning)] - 쉽게 풀어 쓴 딥러닝 손실함수 1 : 회귀 문제에서 오차제곱합(SSE), 평균제곱오차(MSE) 코딩하기.

 

쉽게 풀어 쓴 딥러닝 손실함수 1 : 회귀 문제에서 오차제곱합(SSE), 평균제곱오차(MSE) 코딩하기.

딥러닝(Deeplearning)에서 손실 함수란?딥러닝 스터디 중 손실 함수(loss function)를 알게 되었다.머신러닝, 딥러닝에서 해당 모델의 성능을 평가할 사용하는 함수다.모델이 예측, 인식한 값과 실제 값

tiboy.tistory.com

 

분류 문제

회귀가 정보를 입력받고 예측(주가, 집값 등)하는 문제라면,

분류는 고체나 액체 같은 종류, 개와 고양이 같은 문제다.

 

분류 문제에 사용하는 대표적인 손실 함수가 교차 엔트로피다. (cross entropy loss)

교차 엔트로피는 다양한 식을 가지고 있다.

예측한 값과 실제 값의 오차를 수치로 결과를 보여준다.

손실 함수는 결국 이 오차를 최소화하기 위해 사용되는 함수다.

이진 교차 엔트로피(Binary Cross Entropy, BCE)

둘 중 하나로 분류하는 경우 사용한다.

예를 들어,

합격과 불합격, 정상과 실패 등으로 시그모이드 활성화 함수를 사용하면 0과 1로 결과가 나오게 된다.

이진 교차 엔트로피 수식

엄청 복잡한 식이 나타났다.

딥러닝 공부 중 이런 식 때문에 어려움을 겪을 수 있을 거라 생각한다.

분리해서 같이 하나씩 살펴보면 별거 아니다. 걱정은 이제 그만!

∑는 밑의 i=1부터 N까지 1씩 증가해서 옆의 식에 대입 후 합산한다는 SUM을 의미한다.

아래 예제를 보면 i는 1부터 3까지 순서대로 시그마 옆 i에 대입하고 더한다.

시그마 원리

시그마는 주어진 범위의 값을 하나씩 넣고 그 모든 값을 SUM 한다.

이제 시그마 뒤의 식을 보자.

y는 정답(0 또는 1)이 들어온다.

y가 0이면 앞의 식은 0이 되고 뒤의 식은 살아남고,

y가 1이면 뒤의 식은 0이 되고 앞의 식은 살아남는다.  (0 × log() = 0 이므로)

log는 계산기 또는 파이썬 넘파이(numpy)에서 계산하면 된다.

파이썬 numpy로 log 계산

만약 y에 1(정답)이 들어오면 0이 되고 log와 곱하면 0이 되고 식은 사라진다.

y가 0(오답) 일 때 log 식 내 꺽쇠 y값(0~1 사이값)으로 계산된다.

샘플 데이터로 계산해 보자.

정답값 y = [0, 1]

신경망 출력 y(꺽쇠) = [0.2, 0.8]

교차 엔트로피 수식 : 1일 확률 0.8인 경우 0.22314...

위 값을 대입해서 직접 풀어봤다.

손실 함수 교차 엔트로피 결과는 0.22314가 나왔다.

신경망 출력 y(꺽쇠) = [0.3, 0.7]라면?

1일 확률이 앞 식보다 0.1 작은 0.7로 설정했다.

교차 엔트로피 수식 : 1일 확률 0.7인 경우 0.35667...

신경망 결과 1일 확률이 더 낮게 나오면 식의 결과 값은 더 크게 나온다.

1일 확률이 0.8일 때 0.22314가 나왔는데 0.7로 낮아지면 0.35667이 나왔다.

즉, 정답일 확률이 높을수록 교차 엔트로피 식의 값은 작아진다.

이제 이 식을 파이썬으로 구현해서 딥러닝에서 활용해 보자.

import numpy as np

def cross_entropy_error(y, k):
    dt = 1e-8   # log(0)은 무한이다. 이를 방지하기 위해 필요
    return -np.sum(k * np.log(y + dt))


k = [0, 1]  #정답
y = [0.2, 0.8]  #신경망 결과

print(cross_entropy_error(np.array(y), np.array(k)))
#결과 : 0.2231435388142097

y = [0.3, 0.7]

print(cross_entropy_error(np.array(y), np.array(k)))
#결과 : 0.35667492965301817

값의 범위가 0~1인데 dt(1e-8)는 log(0)이 안되게 하기 위해 넣었다.

log(0)은 무한대로 계산 오류가 나기 때문이다.

파이썬 코드도 손으로 푼 결과와 같다.

정리

신경망 학습 중 손실함수에 대해 알아봤다.

딥러닝 개발자로 공부하다 보면 나타나는 복잡한 식으로 당황할 수 있다.

이 포스팅을 보고 계산에 도움이 되길 바란다.

인공지능 개발자를 위해~

끝.

반응형
반응형

중도퇴사자 종합소득세 신고 후기 및 주의 사항

 

주의! 

잘못 신고 시 문제가 될 수 있다. (가산세, 세무조사 등)

중도퇴사자로 내가 경험한 이야기는 참고만 하자.

각자 상황에 따라 다를 수 있다.

필요할 경우 국세청에 문의해서 해결하자.

친절하고 전문적으로 잘 설명해준다.


작년 7월 31일까지 근무하고 퇴사했다.

중도퇴사자라고 한다.

그 이후 8월 1일부터 12월 31일까지 근로 소득이 없다.

백수라는 얘기다.

건강보험과 국민연금은 지역가입자로 전환되었다.

돈은 계속 나간다.

퇴사하면 회사에서 메일이 온다.

중도퇴사자는 이직, 재취업으로 연속 근무가 되면 현재 재직중 회사에서 연말정산을 한다.

만약 연말까지 근로소득이 없는 상태면 다음 해 5월 종합소득세 신고를 하면 된다.

 

원천징수영수증 체크사항

1. 퇴사 후 한 달 이내에 원천징수영수증 파일이 첨부된 메일이 온다.

원청징수영수증 상단 부분

2. 세대주 여부를 확인해 보자.

상단부 오른쪽 세대주 여부를 보니 세대주1인데 세대원2로 잘못되어 있다.

회사와 세무서에 전화해서 문의했다.

영수증에 잘못 표기되어도 종합소득신고 때 세대주로 선택되면 문제없다고 한다.

종합소득세 신고 -> 근로소득 신고 -> 정기신고 -> 기본사항에서 세대주 여부. 홈택스 화면

 

3. 중도퇴사 확인

과세년도(1.1~12.31) 사이 중간에 퇴사하면 중도퇴사자다.

위 이미지를 보면 연말정산 구분이 중도퇴사 2로 체크되어 있다.

4. 결정세액 확인

월급 받으면 공제했던 소득세와 지방소득세를 퇴사 시점에서 정산한다.

회사는 그 시점에 확인 가능한 인적 공제, 국민연금, 건강보험 등 적용해 세금 신고를 한다.

원천징수영수증 세액명세 예시

원천징수영수증 1장 하단의 세액명세를 잘 보자.

기납부세액 75번 소득세 3,000,000원과 지방소득세 300,000원은 급여에서 공제된 1~7월 합산금액이다.

73번 결정세액은 기본 공제(원천징수영수증 보면 확인됨) 후 실제 국세청에 납부한 세금이다.

원천징수영수증의 납부세액이 홈택스 종합소득세 신고 시 기납부세액으로 설정된다.

원천징수영수증 결정세액으로 설정됨. 다른 소득분의 기납부세액이 있으면 합산되서 보인다. 홈택스 화면

 

5. 차감징수세액 확인(납부/환급)

차감징수액이 위 이미지처럼 마이너스(-2,000,000원) 면 환급을 받는다.

마이너스가 없으면 더 내야 한다.

퇴사 후 한 달 내 급여통장으로 입금되었다.

금액이 차이 나서 물으니 건강보험 등 정산분이 있어서 차감하고 준 금액이라고 했다.

회사에서 꼭 받아야 한다.

 

회사는 근로자에게 급여에서 가져간(원천징수) 소득세 중 결정세액 금액은 국세청에 납부한다.

남은 돈(차감징수세액)이 있으면 회사가 가지고 있기 때문에 회사에서 받아야 한단다.

만약 플러스이면 추가 납부해야 할 금액이라 급여에서 공제하거나 추가 납부하라고 연락이 온다.

"회사에서 안 줬다고 종합소득세 신고 시 원천징수 차감징수세액을 포함해서 환급받으면 안 된다."

중복 환급으로 가산세까지 물리게 된다.

몇 년 전 경험한 부분이다. 

 

중도퇴사자 공제 시 주의사항

1. 퇴사 후 사용분에 대한 공제가 안 되는 부분이 있다.

보통 소비성 내역은 근로 기간 중에 사용한 내역만 공제가 된다.

신용카드, 현금영수증 등 사용액 공제, 주택마련저축(청약), 주택자금(이자분), 교육비, 의료비, 건강보험료, 고용보험료 등

위 내역은 과세기간(1.1~12.31) 내라도

"근로기간(재직 중)이 끝나고 퇴사 후(백수) 사용분은 공제 대상이 아니라고 한다".

7월 31일 퇴사라 7월까지 체크 함. 홈택스 화면

첫 문장을 보면 "근로기간 동안의"라는 문구로 정확하게 표현하고 있다.

교육비는 근로기간동안이라는 표현이 없다. 홈택스 화면

실수할 뻔했던 교육비 공제다.

어디를 봐도 근로 기간 중 사용분이라는 표현이 없다.

국세청에서 제공하는 동영상을 봐도 그런 내용이 없다.

내가 못 찾은 건가?

신용카드에서는 확실하게 근로기간 동안의 사용분이라고 명시되어 있다.

교육비, 의료비도 마찬가지로 근로기간 동안의 사용분만 공제해야 한다.

퇴사 후 이직, 재취업 등 근로자가 아닌 기간의 사용분은 포함하면 안된다고 한다.

나 또한 우연히 알게 되어 다행이지만 처음엔 몰랐고 전체를 선택해서 진행했었다.

 

2. 퇴사 후 사용분이 공제가 되는 부분

국민연금보험료(직장, 지역 포함), 퇴직연금(IRP) 입금, 기부금 등 미래의 투자에 대한 사용분

위 내역은 근로기간이 있었던 과세기간(1.1~12.31) 내 퇴사를 했더라도 납부한 금액 전액 공제가 된다고 한다.

 

3. 예외적 공제 금액, 퇴직정산보험료

중도 퇴사를 하면 퇴직정산보험료를 납부한다.

그런데 퇴사 후 납입(근로자 상태 아님)이 돼서 공제 여부에 확인이 필요했다.

근로 기간 내 발생한 보험료 정산인데 납부는 퇴사 후 백수일 때 냈기 때문이다.

여러 의견이 분분했다.

국민건강보험공단, 로그인 후 직장 보험료 조회에서 확인 가능. 건강보험 화면

근로 기간에 발생한 보험료지만 납부를 퇴사 후 근로 기간이 아닐 때 했다면 공제가 안된다고 했다.

말이 안 되잖아~

과세기간을 벗어났다면 모를까.

126(국세청 세법 담당)에 전화해서 확인했다.

처음 상담한 세법 담당자 왈, 퇴직정산보험료는 공제가 안된단다.

납부일 기준이라고..헉헉

다시 126에 전화해서 다른 세법 담당자와 통화했다.

퇴직정산보험료는 예외적으로 공제된단다. 아싸~

근거는 "상담1팀-468 게시 2006.4.12"에서 찾아볼 수 있단다.

혹시 신고 후 이 부분으로 국세청에서 연락이 오면 위 근거를 얘기하면 된다고 한다.

공제가 된다 안된다 의견이 있었지만 나는 마지막 국세청 세법 담당자께서 의견 주신대로 공제에 넣기로 했다.

건강보험료 연말정산분 불러올 때 퇴사월에 "퇴직정산보험료를 납부한 월(보통 다음 달)도 체크".

 

4. 국민연금 지역가입자 연금료 추가

"퇴사 후 지역가입자로 과세기간 내 납부한 국민연금보험료는 공제"된다고 했다.

 

 

하지만, 홈택스에서는 조회가 안되었다.

그래서 다시 문의했다.

국민연금공단에 가면 "소득공제용 납부확인서"를 보고 입력하면 된다고 한다.

추후 증빙자료를 제출하라고 하면 이 문서를 주면 된다고 한다.

 

5. 배우자가 100만 원 이하 기타 소득이 있는데 인적 공제가 중복 아닌가?

내가 신고할 때 배우자를 인적 공제한다.

그런데 배우자도 소액의 소득이 있어 신고해야 한다.

배우자가 본인분 소득신고를 하면 본인 공제는 기본이다.

그러면 나도 배우자 인적 공제를 하고 배우자도 기타 소득 신고 시 본인을 인적 공제 하는데

중복 공제 아닐까?

126에 확인해 보니 아니란다.

100만 원 미만의 소득이라 괜찮단다.

즉,

배우자 100만 원 이하 소득 신고 시 본인 인적공제 사용.

내가 종합소득신고 시 배우자를 인적공제에 추가.

중복 공제 아니라고 한다.

 

정리.

중도 퇴사로 인해 종합소득신고를 해 보니 난리가 아니었다.

몰라서 공제를 추가할 뻔했고.

공제가 가능한데 빠트릴 뻔했고

상담할 때마다 의견이 다르기도 했고.

좀 더 명확하고 쉽게 설명이 되면 좋겠다.

종합소득세 신고 시 어려움이 있거나 확인이 필요하면 꼭 상담을 받아보길 권한다.

이상 내가 중도퇴사자로 종합소득세 신고하면서 겪었던 경험을 공유했기에

나와 관련된 부분만 이야기 했고 신고 관련 전부를 설명한 건 아니다.

중도퇴사자로 종합소득세 신고 대상자라면 꼼꼼히 체크해서 잘 신고하길 바란다~

끝.

잘못된 내용이 있으면 댓글 부탁~.

 

 

반응형