반응형

분류 전체보기 823

[파이썬 알고리즘 인터뷰] 37. 부분 집합

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 37. 부분 집합 leetcode 78. Subsets 문제입니다. leetcode.com/problems/subsets/ 풀이 def subsets(self, nums): result = [] def dfs(index, path): result.append(path) for i in range(index, len(nums)): dfs(i+1,path+[nums[i]]) dfs(0, []) return result

Python/알고리즘 2021.03.13

[파이썬 알고리즘 인터뷰] 36. 조합의 합

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 36. 조합의 합 leetcode 39. Combination Sum 문제입니다. leetcode.com/problems/combination-sum/ 풀이 dfs와 백트래킹을 활용한 풀이법입니다. def combinationSum(self, candidates,target): result=[] def dfs(csum, index, path): # 종료 조건 if csum < 0: return if csum == 0: result.append(path) return # 자신 부터 하위 원소 까지의 나열 재귀 호출 for i in range(index, len(c..

Python/알고리즘 2021.03.13

[MML] ch 2.3 연립 방정식의 해(Solving Systems of Linear Equation) - 1

Mathematics for Machine Learning를 공부하고 정리한 포스팅입니다. 2.3 연립 방정식의 해(Solving Systems of Linear Equations) 다음과 같은 연립 방정식이 있습니다. $a_{ij}$는 실수, $b_i$는 상수, $x_j$는 미지수 입니다. 위 연립 방정식은 Ax=b로 간단히 표현할 수 있습니다. 이제 행렬 곱셈, 덧셈 과 같은 행렬 연산을 정의하고 위와 같은 연립 방정식을 푸는 방법과 역행렬을 찾는 방법을 알아보겠습니다. 2.3.1 특수해와 일반해(Particular and General Solution) 아래와 같은 연립 방정식을 어떻게 푸는지 알아보겠습니다. 2개의 방정식과 4개의 미지수로 이루어진 연립 방정식입니다. 방정식의 개수보다 미지수의 개..

[MML] ch 2.2 행렬(Matrices)

Mathematics for Machine Learning 원서를 정리한 포스팅입니다. 공부 목적으로 중요하다고 생각하는 부분만 요약했습니다. 2.2 Matrices(행렬) 행렬은 연립 방정식을 간단히 표현하기 위해 사용됩니다. 또한 선형 함수(linear mapping)을 표현합니다. (m, n)크기의 행렬입니다. m개의 행과 n개의 열로 이루어져 있습니다. $R^{mxn}$ 공간에 있는 행렬의 열을 쌓으면 $R^{nm}$ 공간에 있는 긴 벡터로 표현할 수 있습니다. 2.2.1 Matrix Addition and Multiplication(행렬 덧셈과 곱셈) (mxn) 동일한 크기의 두 행렬 A, B의 덧셈은 element-wise sum으로 정의됩니다. 행렬 곱셈은 element-wise operat..

[논문 읽기] Pre-Activation ResNet(2016) 리뷰, Identity Mappings in Deep Residual Networks

이번에 소개할 논문은 Pre-Activation ResNet, Identity Mappings in Deep Residual Networks 입니다. ResNet은 skip connection을 활용해 신경망이 수렴이 잘 되도록 하여 층을 깊게 쌓아 정확도를 높인 모델입니다. Pre-Activation ResNet은 기존의 residual block 구조에 활성화 함수의 순서를 바꿔 성능을 끌어올렸습니다. 입력값을 BN과 활성화 함수를 거친 뒤에 convolution layer에 전달한 것입니다. 아래 그림에서 기존 residual block과 pre-activation residual block을 확인할 수 있습니다. 학습곡선에서 점선은 training loss, 굵은 선은 test error 입니다...

[논문 읽기] YOLOv3(2018) 리뷰

이번에 읽어볼 논문은 'YOLOv3: An Incermetal Improvement' 입니다. YOLOv3은 YOLOv2에서 개선된 버전입니다. 예를 들어, FPN을 사용하여 multi-scale에서 feature을 추출하고, shortcut connection을 활용한 DarkNet-53, class 예측시에 softmax 대신 개별 클래스 별로 logistic regression을 사용합니다. 기본 작동방식은 YOLOv2와 동일하므로 YOLOv2 논문을 읽고, YOLOv3을 살펴보는 것을 추천드립니다. 큰 변화가 일어나지 않았으며, YOLOv2에 최신 기법을 적용하여 성능을 끌어올렸습니다. YOLov3의 성능입니다. RetinaNet 논문에서 사용한 figure에서 YOLOv3을 추가했습니다. YOL..

[MML] 2.1 Systems of Linear Equations(연립 방정식)

Mathematics for Machine Learning 원서를 정리한 포스팅입니다. 공부 목적으로 중요하다고 생각하는 부분만 요약했으므로 많은 내용이 생략되었습니다. 2.1 연립 방정식(Systems of Linear Equations) 연립 방정식의 해는 no, exactly one, infinitely many solution을 갖습니다. 2차원 평면에서 연립 방정식의 해는 선, 점, empty를 얻습니다 3차원 평면에서 연립 방정식의 해는 평면(자유 변수가 3개), 직선(자유 변수 2개), 점(자유 변수 1개)를 갖습니다.

[파이썬 알고리즘 인터뷰] 34. 순열

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 34. 순열 leetcode 46. Permutations 문제입니다. leetcode.com/problems/permutations/ 풀이 dfs를 활용해서 순열을 생성하는 풀이입니다. def permute(self, nums): results = [] prev_elements = [] def dfs(elements): # 리프 노드일 때 결과 추가 if len(elements) == 0: results.append(prev_elements[:]) # 순열 생성 재귀 호출 for e in elements: next_elements = elements[:] ne..

Python/알고리즘 2021.03.09

[파이썬 알고리즘 인터뷰] 33. 전화 번호 문자 조합

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 33. 전화 번호 문자 조합 leetcode 17. Letter Combinations of a Phone Number 문제입니다. leetcode.com/problems/letter-combinations-of-a-phone-number/ 풀이 def letterCombinations(self, digits): def dfs(index, path): # 끝까지 탐색하면 백트래킹 if len(path) == len(digits): result.append(path) return # 입력값 자릿수 단위 반복 for i in range(index, len(digit..

Python/알고리즘 2021.03.09

[파이썬 알고리즘 인터뷰] 32. 섬의 개수

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 32. 섬의 개수 leetcode 200. Number of Islands 문제입니다. leetcode.com/problems/number-of-islands/ 풀이 1은 섬을 의미합니다. grid에서 섬인 인덱스를 찾으면, dfs로 확장해 나갑니다. def numIslands(self, grid): if not grid: return 0 def dfs(i, j): # 더 이상 땅이 아닌 경우 종료 if i = len(grid) or \ j = len(grid[0]) or \ grid[i][j] != '1': return gr..

Python/알고리즘 2021.03.09
반응형