목록2025/04 (17)
코딩복습장

이번 포스팅에서는 Dropout과 Batch Normalization에 대해서 소개하려고 한다. 포스팅 시작~! 🔹 Dropout Dropout은 Overfitting을 막는 방식 중에 하나이다. Dropout은 일정확률 (0~1)에 따라 노드간의 연결을 끊는 방법이다. 왜 끊을까? 학습시에 연결을 random하게 끊음으로써, 하나의 node에 의존하여 학습하는 것을 방지하여 모든 node를 사용하여 추론하도록 유도하는 것이다. 그런데 이게 왜 Overfitting에 도움이 되는지 근본적인 이해가 되지 않았다. 그래서 나의 생각을 정리해보았다. 이렇게 하나의 node에 의존하지 않고 잘 학습된 node들을 모두 연결하여 사용한다면, 이는 같은 데이터를 여러 모델에 넣어서 나온 결과값을 평균..

아 문제가 어려웠다. 시간복잡도 문제도 있었고 시행착오가 많았던 문제였다. 나의 생각 1. 문자를 저장하며 for문으로 탐색 2. 저장된 딕셔너리에 같은 문자가 있으면 현재 딕셔너리의 길이를 저장한 후 딕셔너리를 초기화함 3. 초기화한 딕셔너리부터 1, 2번과정을 반복함 4. 탐색이 끝났을 때, 저장된 길이의 최댓값 반환. 하지만 여기에는 문제점이 있었다. "bkbm의 경우 나의 방식으로 탐색하게 된다면 bk, bm으로 탐색이 되기 때문에 최대 길이가 2가 나오지만 가장 긴 문자열은 "kbm"으로 길이가 3이다. 따라서 겹치는 대해서도 조사할 필요성을 느끼게 되었다. -> 2번에서 이전의 구간을 삭제하면 안된다. ( 이전 구간에서 중복된 문자열만 삭제했을때 최대 길이가 나올 수 있음) ex) b..

이번 시간에는 Underfitting과 Overfitting 그리고 대응방안에 대해 알아볼 것이다. 우선 우리는 국경을 그리는 문제를 생각해볼 것이다. case 1을 살펴보자 우리는 간단하게 직선으로 국경을 나누는 방식을 생각해볼 수 있다. 하지만 국경이 잘 나뉘어졌다고는 볼 수 없을 것이다. case2 이번에는 나라들이 완벽하게 분리되도록 선을 그었다. 물론 분류는 완벽하게 되었지만 과연 잘 분류했다고 볼 수 있을까? 아닐 것이다. 몇개의 다른 좌표를 지정했을때 분류가 틀릴 가능성이 높을 것이다. -> 일반화 실패 case 3 이번에는 어느정도 국경을 잘 분리함과 동시에 일반화를 챙겼다. 다른 데이터가 들어와도 대부분 맞출 것이다. 이때 case1을 underfitting되었다고 하고..

오늘은 leetcode문제를 리뷰해보려고 한다. 이 문제는 linked list를 사용해서 덧셈연산을 하는 문제이다. 나는 제출형식을 맞추는 것에 애를 먹었다. 문제에서는 linked list를 만드는 ListNode class가 있다고 가정한 다음 문제를 풀기 시작한다. 그리고 링크드 리스트를 받은 다음 합의 링크드 리스트를 만들어서 return해주면 된다. 나는 문제의 입력과 출력형식의 맞춰서 linked list와 list를 변환하는 함수까지 짜버렸다. 풀이방식은 간단하다. 1. 링크드 리스트의 값이 존재할때까지 while로 이동하면서 값을 더해준다. 2. while문 안에서 덧셈의 결과가 10이 넘는다면 다음 자리수를 carry변수에 저장하여 함께 더해준다. -> //10 연산자를 사용하여 ca..