개념 정리 ch8 합성곱: 커널을 사용하는 층을 말한다. 입력과 출력의 크기를 같게 만들기 위해 패딩을 사용한다. 또한 패딩을 사용하면 각 피처의 값들이 일정하게 전달될 수 있다. 커널을 사용할때 차례대로 이동하는데, 이때 이동의 크기를 스트라이드라고 한다. 풀링은 합성곱 층에서 만든 특성 맵의 개수는 줄이지 않고 가로세로 크기만 줄이는 걸 말한다. 풀링과 커널은 다르다. 풀링은 가중치도 없고, 겹치지 않게 이동히며 축소시킨다. 합성곱의 스트라이드를 사용해서 특성 맵을 줄일 수도 있는데 풀링을 사용하는 이유는? 경험적으로 더 나은 성능을 내기 때문이다. ch9 순차 데이터란 순서에 의미가 있는 데이터를 말하고, 이 순차 데이터에 잘 맞는 인공 신경망 중 하나가 순환 신경망이다. 앞에서 배운 모델들은 FF..
기본 미션 Ch.07(07-1) 확인 문제 풀고, 풀이 과정 정리하기 1. 3 입력과 밀집층의 모든 뉴런이 서로 연결되고, 뉴런마다 1개의 절편이 있으니 10*100+10을 해서 1,010개의 모델 파라미터가 있다. 2. 2 이진 분류를 할때는 sigmoid함수를 사용한다. 3. 4 compile() 메서드의 losss는 손실 함수를 지정하고, metircs는 측정하는 지표를 지정한다 4. 1 타깃값이 정수인 다중 분류일때는 loss를 sparse_categorical_crossentropy로 지정한다. 메모 추가 미션이나 개념 정리는 귀찮으니 생략할래요~
기본 미션 k-평균 알고리즘 작동 방식 설명하기 앞에서 배운 군집 알고리즘은 각 클래스의 이미지의 평균값을 구해서 그 평균값과 가까운, 비슷한 이미지를 찾아주는 방식이다. 하지만 클래스의 갯수나 종류를 알 수 없을때에는 어떡할까? 픽셀간의 차이의 절대값의 합을 이용해서 적절한 k값(클래스의 개수)을 찾아서 비슷한 이미지끼리 묶어주는 것이었다. 이 때 처음에 랜덤하게 정하는 클러스터의 중심이 k-평균이고, k-평균 알고리즘이 만든 클러스터에 속한 샘플의 특성 평균값이 센트로이드(클러스터 중심)이다. 그리고 k값을 구하는 방법이 엘보우 방법이고, 이너셔는 클러스터 중심과 샘플 사이 거리의 제곱 합이다. 선택 미션 Ch.06(06-3) 확인 문제 풀고, 풀이 과정 정리하기 1. 2 2. 2 3. 1 개념..
기본 미션 교차 검증을 그림으로 설명하기 교차 검증이란? 모델의 성능을 평가하기 위해서 training data로 학습시키고, test data로 성능을 평가한다. 성능 좋은 모델을 찾기 위해 최적의 파라미터를 찾아야하는데 이 파라미터를 찾기 위해서는 파라미터 값을 바꿔가면서 training data의 정확도를 확인해야 한다. 하지만 정확도를 확인하기 위해 테스트를 해도 100% 신뢰할 수 없다. 우연히 맞추기 쉬운 데이터가 뽑혔을 수도 있기 때문이다. 그래서 데이터를 일정 비율로 나눠서 차례대로 학습을 시키고 정확도를 측정한다. 예를 들어 Split1에서는 Fold2~5로 학습을 시키고 Fold1로 정확도를 측정한다. 이를 K번 반복하여서 평균 정확도를 측정하는 방법이다. 이를 통해 일반적인 정확도와 ..
언어: python 번호: 1920 제목: 수 찾기 등급: 실버4 풀이 과정: 처음에는 for i in lst로 리스트 안에 있는지를 확인했더니 당연하게도 시간 초과가 떴다. 그래서 재귀문을 써서 풀려했다. n, lstn, m, lstm을 입력받아 숫자 리스트를 정렬하고 이진탐색으로. 가운데 값과 비교해서 작으면 왼쪽으로 가고, 크면 오른쪽으로 가려했다. 근데 잘 안됐다. 내 생각에 while문을 안 쓰고 length==0이라는 조건을 걸어서 탐색 횟수가 정해지니까 못 탐색하기 바로 전 단계에서 멈쳐버리는 것 같다. 이를 풀려면 변수를 하나 더 써서 while문에 조건을 걸어야할 것 같다. 코드: 내가 잘못 푼 코드 #1920 n = int(input()) lstn = list(map(in..
언어: python 번호: 10974 제목: 모든 순열 등급: 실버3 풀이 과정: 재귀함수로 풀었다. 리스트를 만들어 해당 숫자에 방문했는지 안했는지를 확인하고 새로운 순열 arr에 추가하는 방식이다. 코드: # 10974 # 순열의현재길이, 모든 숫자의 수, 고를 숫자의 수, 새로 만들 순열, 방문했는지 확인하는 리스트 def permutation(k, n, m, arr, ch): if k==m: print(*arr) else: for i in range(1, n+1): if not ch[i]: ch[i] = True arr[k] = i permutation(k+1, n, m, arr, ch) ch[i] = False N, M = 5, 2 ch = [False]*(N+1) arr = [0..
언어: python 번호: 10972 제목: 다음 순열 등급: 실버 3 풀이 과정: 일단 숫자 n과 순열 arr를 입력받는다. arr은 가장 뒤의 숫자부터 2개씩 비교를 하면서 다음 순열을 찾는다. 예를 들어 [1, 3, 4, 2]라는 순열의 다음 숫자를 찾기 위해서는 [4, 2] -> [3, 4] -> [1, 3]의 순서로 비교를 해야한다. 비교할때 앞에 있는 숫자가 더 작으면 두개의 위치를 교환한다. 그리고 교환한 숫자의 뒤를 정렬한다. [1, 3, 4, 2] : 뒤에서부터 4와 2를 비교했는데 앞의 숫자가 더 크니까 그래도 둔다. [1, 3, 4, 2] : 그 다음인 3과 4를 비교했는데 앞의 숫자가 더 작으니 둘의 위치를 교환한다. [1, 4, 3, 2] : 위치를 바꾼 뒤 앞의 숫자인 4를 기준..
Ch.04(04-1) 2번 문제 풀고, 풀이 과정 설명하기 2. 로지스틱 회귀가 이진 분류에서 확률을 출력하기 위해 사용하는 함수는 무엇인가요? (1) 시그모이드 함수이다. 시그모이드 함수는 선형 방정식의 결과를 0과 1 사이로 만들어준다. 소프트맥스 함수는 다중 클래스 분류에서 확률의 총 합이 1이 되도록 만드는 함수이다. 로그 함수와 지수 함수는 숫자를 계산하기 쉽게 만드려고 쓰는 함수다. Ch.04(04-2) 과대적합/과소적합 손코딩 코랩 화면 캡처하기 그래프가 작아서 제대로 보이지 않지만 epoch가 100이 넘어가면 test accuracy가 조금씩 감소한다고 한다. 반면에 train accuracy는 계속 증가하니 overfitting이라 할 수 있다. 그리고 epoch 80전으로는 train..