본문 바로가기
728x90

Quality control (Univ. Study)196

Algorithm design - Matrix-chain Multiplication 연쇄 행렬곱셈i × j행렬과 j × k 행렬을 곱하기 위해서는 일반적으로 i × j × k 번 만큼의 기본적인 곱셈이 필요하다. 연쇄적으로 행렬을 곱할 때, 어떤 행렬곱셈을 먼저 수행하느냐에 따라서 필요한 기본적인 곱셈의 횟수가 달라지게 된다.예를들어 M1, M2, M3, M4이 각각 10x100, 100x5, 5x50, 50x20이라고 할때 아래와 같이 다양한 결과가 나올 수 있다. (1) M1x(M2x(M3xM4)) : 5x50x20+100x5x20+10x100x20 = 35,000(2) M1x((M2xM3)xM4) : 100x5x50+100x50x20+10x100x20 = 145,000(3) (M1xM2)x(M3xM4) : 10x100x5+5x50x20+10x5x20 = 11,000(4) ((M1x.. 2024. 5. 7.
Regularization / Dimensional Reduction and Expansion Regularization위와 같은 경우에 weight W는 유일하게 결정될 수 없다.Hinge loss의 특징을 통해서 2W 또한 Loss를 0으로 만들 것이라고 예상할 수 있다.이 케이스에서 weight를 두배로 만들어도 아래와 같이 Loss는 계속 0임을 확인할 수 있다.Regularization의 기본 원리는 이왕이면 더 단순한 모델이 좋다는 것이다. 아래 케이스를 보면 f1이 f2보다 training set에 보다 적합하지만 너무 복잡한 것을 볼 수 있다. 이렇게 과적합이 되어있으면 다른 데이터가 들어왔을때 좋은 성능을 내기 어렵다.다른 데이터가 들어오자 더 단순한 f2가 더 잘 표현하고 있는 것을 볼 수 있다.많이 알려진 regularization 기법은 아래와 같다.L1 regularizat.. 2024. 5. 4.
Computational Graph / Backpropagation Gradient위와 같은 SVM Loss function에 대해서 어떤 식으로 gradient를 연산할지 생각해보자.당연히 직접 계산을 하나씩 해나갈 수 있다.그러나 당연하게도 직접 하나하나 계산하는 것은 어마어마한 양의 행렬 연산으로 인해 낭비가 많다. 또한 만약 Loss function을 바꾸고 싶어지면 연산을 처음부터 다시해야한다. 마지막으로 복잡한 모델에서는 더더욱 문제가 많을 것이다. 따라서 Computational graphs와 Backpropagation을 이용한다. 아래는 Computational graphs의 표현법이다.역전파의 간단한 예시를 살펴보자.우리가 알고있는 미분 값과 알고 싶은 미분 값은 아래와 같다.이를 chain rule을 이용하여 역으로 진행시켜 구할 수 있다.위 과정을 .. 2024. 5. 3.
Digital Image Processing - Color Image Processing Backgrounds of Color색의 3속성은 흔히 색상(Hue), 명도(Brightness,value), 채도(Purity,saturation,chroma)로 불린다.Primary color(원색)은 서로 혼합되어 다른 컬러를 생성하는 기본 색상으로 일반적으로 R,G,B의 3색을 이용한다. 100% 모든 color를 생성하지는 못하지만 practically 충분하다.Color gamut은 Primary color의 조합으로 만들어낼 수 있는 모든 컬러를 말한다.CIE XYZ Color ModelCIE(CommissionInternationaledeI'Eclairage,International Commission on Illumination)에서 제정한 모델로 CIE primary color를 정했다.. 2024. 5. 1.
알고리즘 설계 실습 - Fibo_counter 문제피보나치 수는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. 아래 소스 코드는 N번째 피보나치 수를 구하는 재귀함수이다.int fibonacci(int n) { if (n == 0) { print("0"); return 0; } else if (n == 1) { print("1"); return 1; } else return fibonacci(n‐1) + fibonacci(n‐2);}fibonacci(3)을 호출하면 다음과 같이 동작한다.- fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출- fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출- 두 번째 호출한 fi.. 2024. 5. 1.
시험 대비 코드 정리(2) 보호되어 있는 글 입니다. 2024. 4. 22.
시험 대비 코드 정리(1) 보호되어 있는 글 입니다. 2024. 4. 19.
Algorithm Design - Huffman encoding / Encryption / RSA File compression시간보다는 공간을 절약하는 방법에 대해 연구된다. 대부분의 컴퓨터 화일에서 데이터가 중복되어 있다는 것에 착안된 개념이다. 파일 압축의 대상으로는 텍스트 파일 인코딩된 이미지의 래스터 파일 사운드나 다른 아날로그 신호의 디지털 표현 등이 있다. 현재는 허프만 인코딩이 거의 주를 이루지만 이 개념이 나오기까지 몇몇 다른 시도들이 존재했었다. 우선 run-length encoding(런-길이 인코딩)은 동일한 문자가 여러개 나올 경우 숫자와 문자쌍으로 화일을 압축하는 기법이다. 이진수로 표현되는 비트맵 이미지를 압축하는데 사용됐었다. 화일에서 가장 기본적인 중복은 같은 문자가 연속적으로 나타나는 것이다. 이를 다음과 같이 압축해내는 기법이다.AAAABBCCC → 4A2B3C.. 2024. 4. 18.
Digital Image Processing - Fourier transform / Frequency domain 푸리에 변환 푸리에 변환은 Fourier가 제시한 아이디어인 Fourier series라는 모든 주기함수는 각기 다른 주파수의 사인과 코사인 함수의 가중합으로 표현될 수 있다는 아이디어로부터 확장된 개념이다. 아래 그림은 다양한 주파수의 사인함수를 더해서 unit function에 수렴하게 만드는 대표적인 Fourier series의 예시이다. 푸리에 변환은 어떤 함수를 주기함수(주파수를 갖는 함수)의 합으로 표현할 수 있다는 개념을 차용하여 아래와 같이 변환하는 방법이다. 물론 그 역과정을 통해 원시함수를 찾아내는 푸리에 역변환 과정도 가능하다. 이때 F(w)는 Magnitude가 A이고 Phase가 Ø인 주기함수이고 각각은 아래와 같이 실수부 R(w)과 허수부 I(w)로 표현된다. Continuous.. 2024. 4. 18.
728x90