본문 바로가기

전체 글

(134)
2022-05-16:: [TypeScript]타입을 하고싶어요... 타입은 튜링 완전하다 타입스크립트의 타입 시스템은 튜링 완전하다. 튜링완전성 어떤 프로그래밍 언어나 추상 기계가 튜링 기계와 동일한 계산 능력을 가진다는 의미이다. 이것은 튜링 기계로 풀 수 있는 문제, 즉 계산적인 문제를 그 프로그래밍 언어나 추상 기계로 풀 수 있다는 의미이다 말이 어렵지 그냥 타입스크립트의 타입 시스템 만으로도 프로그래밍이 가능할 정도로 고수준이라는 뜻이다. 타입스크립트는 런타임이 아닌 타입 시간에 평가(evalueate)되는 코드이다. 타입시간 IDE에서 타이핑 하는 시간이다. IDE를 통해서 일종의 REPL을 수행한다. P는 커서 위에 나타나는 콤보박스이다. REPL Read, Evaluate, Print, Loop의 약자이다. python이나 node.js의 shell모드를 의..
고양이 사진첩 문제를 풀며 느낀점 화살표 함수의 한계점 처음 이 문제를 풀때, 컴포넌트를 화살표 함수로 표현했고 이들을 모듈로 관리했다. 하지만 아래와 같은 화살표 함수의 제한점들을 관과 했다. this나 super에 대한 바인딩이 없고, methods로 사용될 수 없다. new.target 키워드가 없다. (new로 생성된 시점을 파악한다.) 일반적으로 스코프를 지정할 때 사용하는 call, apply, bind methods를 사용할 수 없다. 생성자로 사용할 수 없다. yield를 화살표 함수 내에서 사용할 수 없다. React에서는 컴포넌트 파일 안에 상태를 함께 관리했다. 컴포넌트에서 상태는 단순히 활용되는 데이터 이상의 의미를 갖는다. 선언적 프로그래밍과 컴포넌트 추상화 컴포넌트 형태로 추상화하는 것은 DOM 접근을 최소화하고..
0206 Vanishing / Exploding Gradient Gradient의 소실과 폭주 문제 역전파 알고리즘은 출력층에서 입력층으로 오차 그레이디언트를 전파하면서 진행된다. 알고리즘이 신경망의 모든 파라미터에 대한 오차 함수의 그레이디언트를 계산하면 경사 하강법 단계에서 이 그레이디언트를 사용해 각 파라미터를 수정한다. 그런데 알고리즘 하위층으로 진행될수록 그레이디언트가 점점 작아지는 경우가 많습니다. 경사 하강법이 하위층의 연결 가중치를 변경되지 않은 채로 둔다면 훈련이 좋은 솔루션으로 수렴되지 않을 것이다. 이 문제를 그레이디언트 소실이라고 한다. 반대로 그레이디언트 폭주 문제도 발생하는데 이런 경우는 주로 순환 신경망 RNN에서 발생한다. 초기 머신러닝은 시그모이드 활성화 함수와 평균이 0이고 표준편차가 1인 정규본포로 가중치를 초기화했다. 이 조합을 ..
0204 Cross Validation / Confusion Matrix 성능측정 위 그래프는 loss 관점에서 보는 underfitting과 overfitting을 보여준다. Training loss와 test loss가 함께 감소하는 구간 (underfitting) Training loss는 감소하지만, test loss는 증가하는 구간 (overfitting) 우리의 목적은 머신 러닝 모델을 학습시면서 overfitting이 발생하기 직전에 학습을 멈추는 것이다.(early stopping) 이 목적을 달성하기 위해서 머신러닝에서는 validation set을 이용한다. Validation Dataset validation dataset은 임의로 추가된 게 아니라 training dataset으로부터 추출된 dataset이다. 위 그림은 validation dataset..
0203 Logistic Regression 로지스틱 회귀 회귀 알고리즘은 분류 모델로 사용할 수 있다. 특히 로지스틱 회귀는 샘플이 특정 클래스에 속할 확률을 추정하는데 널리 사용된다. 대표적으로 Binary classifier가 이에 해당된다. 로지스틱 회귀의 작동방식 역시 선형 회귀 모델과 같이 가중치 합을 계산한 다음 편향을 더한다. 다만 선형회귀처럼 결과를 바로 출력하지 않고 결과값의 logistic을 출력한다. 로지스틱 회귀에 사용되는 가장 대표적인 함수가 시그모이드이다. 시그모이드의 수식과 그래프 형태는 아래와 같다. 시그모이드 함수의 특징은 아래와 같다. 로지스틱 함수는 0과 1사이의 값을 출력하는 시그모이드 함수를 사용한다. 시그모이드 함수는 binary classification에 사용된다. t값이 축의 가운데에 있을때는 Line..
0202 Regularized Linear Models 학습 중에 흔히 겪는 문제 중 하나가 바로 과대적합(overfitting)이다. 이번 장에서는 과대적합을 감소시키기 위한 방법 중 하나인 규제에 대해 설명해보려 한다. 선형 회귀 모델에서는 보통 모델의 가중치를 제한하여 규제를 가한다. 대표적인 규제 방법으로는 3가지가 있다. 릿지 회귀 라쏘 회귀 엘라스틱 회귀 릿지회귀 릿지회귀는 규제가 추가된 형태의 선형 회귀이다. 규제항 𝛼∑𝑖=1𝑛𝜃𝑖2 이 Cost함수에 추가가 된다. 이는 학습을 통해 모델을 데이터에 맞추는 것 뿐만 아니라 모델의 가중치가 되도록 보수적으로 유지되도록 한다. 규제항은 가중치 벡터의 L2-norm이다. 규제항의 가중치 알파가 커질수록 분산은 줄지만 편향은 커진다. 모델의 분산과 편향은 trade-off 관계에 있으며 적절히 튜닝을 해..
0201 Regression Model Approximation 근사치는 참값과 비슷한 True value와 비슷한 값을 의미한다. True value를 계산하기 힘들 때 approximation을 사용한다. 대표적으로 반올림이 있다. Interpolation vs Approximation 보간법은 점으로 표현된 데이터를 선으로 잇는 방식으로 값을 예측하는 방법이다. 반면, 근사법은 전체 데이터의 통계에 기반해 가장 높은 확률을 지닌 값을 예측하는 방법이다. 보간법은 이상치에 큰 영향을 받기 때문에, 주어진 데이터의 신뢰도가 높은 경우에 사용한다. 반면에 근사법은 이상치에 Robust하다. Regression 회귀 분석이란 독립변수와 종속변수 간의 관계를 통계적으로 모델링하는 기법이다. 데이터 + 결과값으로 알고리즘을 구한다는 점에서 머신러닝..
고양이 사진 검색 사이트2 :: 동적 컴포넌트와 이벤트리스너 바인딩 이번에 해결할 문제와 조건이다. 필수 이미지를 검색한 후 결과로 주어진 이미지를 클릭하면 모달이 뜨는데, 모달 영역 밖을 누르거나 / 키보드의 ESC 키를 누르거나 / 모달 우측의 닫기(x) 버튼을 누르면 닫히도록 수정해야 합니다. 현재 그리드의 아이템을 클릭하면 모달의 랜더링 여부를 결정하는 변수 visible이 true가 되어 모달이 innerHTML 형태로 추가되는 구조이다. visiblitiy가 변하는 시점에 생성과 랜더링이 진행되기 때문에 초기에 grid형태로 데이터가 load될 때의 overhead를 줄일 수 있다. 일반적으로 이벤트를 설정하는 방법은 html코드가 있고 js코드에서 DOM으로 접근해 addEventListener를 등록하는 형태이다. 하지만 이 경우에는 컴포넌트가 동적으로 생..