MVVM 구조
MVVM = Model, View, View Model 1. Model데이터 저장 구조체이다. 크로스핏 운동 어플을 만든다고 가정하면,enum ExerciseType { case weighted(Double) // 무게가 필요한 경우 (kg 단위 등) case bodyweight // 무게가 필요 없는 경우}struct Exercise { let name: String let sets: Int let reps: Int let type: ExerciseType}struct WOD { let id: Int let name: String let exercises: [Exercise]}  2. View ModelView에서 사용하기 위해 Model..
2024.10.22
no image
[03] Intensity Transformations and Spatial Filtering
Intensity transformation이미지의 intensity를 변환하는 방법이다. $g(x,y) = T[f(x,y)]$ 대표적으로 다음과 같은 방법이 있다.Linear : negative, identityLogarithmic : log, inverse-logPower law : $n^{th}$ power, $n^{th}$ root Image Negatives$$ S = L - 1- r $$Black dominant image에서 white 계열의 차이를 효과적으로 확인할 수 있다. Log transformations$$ S = c \log (1+r) $$Low intensity level을 wide하게 만드는 효과가 있다. 이 때문에, low intensity간의 차이는 강화되고 high int..
2024.10.14
no image
[02] Digital Image Fundamentals
이미지에는 여러 표현들이 있다.Luminance - 실제 빛의 강도Brightness - luminance 인식하는 정도Hue - spectrum에서 dominant wavelengthSaturation - white light의 amount, 없으면 100%Contrast - 색의 brightness 차이 우리 눈은 실제 luminance value 차이보다 luminance contrast에 민감하다. 그러다 보니 같은 빛이어도 밝기가 다르면 다른 빛으로 인식한다. 밝기는 surroundings에 영향을 많이 받는다. 가령 Mach Band effect가 있다.경계면에서 색이 더 진한 것처럼 보이는 현상이다. Image ScalingImage는 pixel 단위로 구현되고, pixel은 bit로 구성된..
2024.10.14
no image
[01] Introduction
1. Linear systemAdditivity와 Homogeneity를 만족해야 한다.Additivity: $f(a+b) = f(a)+f(b)$Homogeneity: $f(ca) = cf(a)$ 1.1. Time invariant, Spatially invariant, Fixed parameter HInput과 Output의 관계가 유지되는 시스템이라고 생각하면 된다. 1.2. Casual H특정 input 전에는 output이 없는 경우를 의미한다. 1.3. Stable HBounded input에 대해 output도 bounded인 경우를 의미한다. 위의 성질들은 linear system인지 확인하기 위해서 알아야 한다.Example) 다음 시스템은 linear한가요? 1.4. Linear syst..
2024.10.14
no image
[TenSEAL] Tutorial 2 : Working with Approximate Numbers
CKKS에 대한 자세한 소개는 다음을 참고한다.https://blog.openmined.org/ckks-explained-part-1-simple-encoding-and-decoding/ CKKS explained: Part 1, Vanilla Encoding and DecodingFirst part of the series CKKS explained where we see how to implement a vanilla encoder and decoder.blog.openmined.org 1. Theory : CKKSCheon-Kim-Kim-Song (CKKS)는 leveled 동형 암호 스킴으로 real numbers에 대해 approximate arithmetics을 지원한다. 간단한 구조는 다음과..
2024.07.02
[TenSEAL] Tutorial 1 : Training and Evaluation of Logistic Regression on Encrypted Data
MS의 TenSEAL 학습을 위해 번역한 글이다.https://github.com/OpenMined/TenSEAL GitHub - OpenMined/TenSEAL: A library for doing homomorphic encryption operations on tensorsA library for doing homomorphic encryption operations on tensors - OpenMined/TenSEALgithub.com 1. Setupimport torchimport tenseal as tsimport pandas as pdimport randomfrom time import time# those are optional and are not necessary for trainin..
2024.07.02
no image
[09] Cyclic Codes
[n,k] linear code가 cyclic shift해도 codeword를 유지하면, cyclic code라고 한다. Code는 두 가지 형식으로 표현이 가능하다.Vector representation : $ c = (c_0, c_1, ..., c_{n-1})$Polynomial representation : $ c(x) = c_0 + c_1x + c_2x^2 + ... + c_{n-1}x^{n-1} $두 표현 모두 일대일 대응이다. 먼저 Polynomial representation을 가정한다. $c(x)$에 $x^kc(x)$를 하고 $(x^n -1)$로 mod 연산을 해주면 cyclic을 구현할 수 있게 된다. 쉽게 말하면 다음과 같다.$a(x)c(x) mod x^n-1 $도 codeword이다...
2024.06.11
no image
[08] Linear Codes
디지털 통신 시스템의 Error-correcting code는 다음과 같다. $RSyndrome checkingCyclic Redundancy Check (CRC)Applications: Automatic Repeat reQuest (ARQ) 가장 나이브한 방법은 Message size를 알고 그에 따른 codeword를 알고 있을 때, received된 codeword와 table에 있는 codeword의 유사도를 비교하는 방법이다.위 방법은 $2^3$개의 table row를 요구하기 때문에, k이 작은 경우에만 사용할 수 있다. 유사도는 어떻게 비교할까?Hamming distance : 다른 bit의 수를 세기Hamming weight : nonzero bit의 수를 세기Binary case : $d..
2024.06.11
no image
[07] Channel Capacity
통신 시스템에서 중요한 개념 중 하나는 "Channel capacity"이다. Channel capacity란 통신 채널을 통해서 안전하게 전달될 수 있는 데이터의 최대 비율을 의미한다. 통신이란 A가 B에게 message를 전달하는 행위를 말하며, B가 A가 보낸 message를 정확하게 복원할 수 있으면 통신이 성공했다고 말할 수 있다. 이때 간섭이나 공격에 의해 message는 변조가 될 수 있어, B에서 복원할 수 있음이 중요한 요소로 작용한다. Channel capacity는 이런 에러가 작은 통신에서 최대로 전송할 수 있는 데이터 양이라고 생각하면 된다. Channel codes는 channel capacity만큼의 통신을 가능하게 해주는 code라고 보면 된다. 1. Discrete Memo..
2024.06.09