머신러닝 성능 평가 지표를 정리하기에 앞서 먼저 실제 정답과 분류 정답에 관해서 그림으로 정리하고 가보자. 여기서 제대로 맞추었을 경우 True이고 못 맞추었을 때는 False이다. True 안에서도 긍정 값을 맞추었을 때 True Positive, 부정 값을 맞추었을 때, True Negative 값이라고 정의한다. 정확도 : Accuracy Accuracy는 올바르게 예측된 데이터의 수를 전체 데이터의 수로 나눈 값입니다. 즉, 아래와 같은 수식으로 나타낼 수 있다. 재현율 : Recall accuracy는 데이터에 따라 매우 잘못된 통계를 나타낼 수 있다. 예를 들면 눈 내리는 날을 예측하는 모델을 만들었다고 가정해보자. 계속 Negative로 예측해도 꽤나 높은 accuracy를 가질 수 있을 것..
CIFAR-10 데이터를 사용하여 ResNet-18 구현 우선 아래와 같은 BasicBlock을 설정해 준다. kerner size 는 (3 x 3) 그리고 Batch Normalize를 거친 값을 다시 다음 layer로 넘겨준다. forward 계층에서는 실질적으로 identity shortcut을 더해주며 계층을 연산해준다. stride 1이 아니라면 입력값과 출력 값의 dimension이 다르다는 의미이다. 즉 동일한 차원으로 맞춰준다. stride 값을 다르게 하여, dimension 값을 맞춰 줄 수 있다. ResNet 클래스 정의 ImageNet에서의 Architecture를 그대로 차용하였다. 필터의 갯수는 논문의 필터와 같게 구현하였다. 여기서 각각이 layer 들의 filter의 갯수가 ..
CNN의 구조로 만든 ResNet은 CNN의 층이 깊어질수록 loss 값이 0이 되는 Vanishing gradient problem(기울기 소실 문제)를 해결하기 위하여 만들어졌다고 한다. 학부 때 ResNet 강연을 들은 적이 있는데, 딥러닝 이미지 인식 파트에서 폭넓게 쓰인다고 한다. 코드 구현과 해석을 위하여 논문을 읽고 정리해보자. Abstract 초록에서는 뉴럴 네트워크가 깊어질수록 트레인(train) 시키기 어렵다고 문제제기를 한다. 하지만 residual learning(잔차 신경망)을 사용하여 해결할 수 있다고 한다. residual의 사전적 의미는 '여분의', '잔여의'라는 의미이다. residual training을 사용하여 경험적(empirical)으로 좋은 결과를 얻었다고 한다. ..
매직 메소드 특별한 의미를 가지고 있는 미리 정의된 메소드들이다. 메소드 이름 앞뒤에 _가 붙어있는 메소드 던더 메소드라고도 한다.(던더는 더블 언더의 준말이다.) 생성자 Constructor : __init__ 객체가 생성될 때, 인터프리터에 의해서 자동으로 호출되는 메소드 객체변수의 초기화 객체가 생성될 때 모든 만들어질 객체가 기본으로 이정도는 동일한 속성으로 가지고 가게 하고 싶다면 객체가 실행될 때 생성자가 실행된다는 것 객체가 갓 만들어졌다 라는 것을 의미합니다. 생성자를 통해 객체변수에 초기화할 수 있다. 실습 생성자에 이름, 나이를 같이 입력받아야 인스턴스가 생성되도록 수정해주시고, __add__라는 던더메소드를 둘의 이름과 나이의 합을 출력하는 메서드로 변경해주세요. class Perso..
절차 지향 프로그래밍 절차적 프로그래밍 언어는 메인 함수의 기준으로 함수를 절차적으로 실행하는 프로그래밍 언어이다. 호출된 함수에 맞춰서 여러개의 데이터들이 복사해서 관리하는 시스템이다.(기능과 데이터의 불일치) 객체 지향 프로그래밍 절차적 프로그래밍의 단점을 극복하기 위해서 만든 프로그래밍 언어이다. 데이터와 기능을 주제별로 따로 만들어 놓고, 필요한 부분을 불러올 수 있다. 예시) - TV (객체1) - 동작(기능) = 메소드, 함수 - 켜다 - 끄다 - 소리를 키우다 - 채널을 돌리다 - 속성 = 데이터 - LED - 50KG - 검은색 - 사람 (객체2) - 먹다 - 보다 - 듣다 - 프로그래밍하다 - 성별 - 몸무게 NKG - 소파 (객체3) - 흰색 - 100KG 위와 같이 그때그때 상황에 맞..
문제 설명 한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다. 한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세..