Category Archive

Dev

카카오 로그인 어디까지 해봤니?

  • 12 min read

기존에 운영중인 사이트에 sns 회원가입/로그인을 도입한다면 조금더 나아간 고민을 할수 밖에 없고 이러한 고민을 먼저 진행해본 사람으로써 도움을 주기위해 이번 글을 적어보겠다.

Read More

Python 비동기 예제

  • 2 min read

python에서 비동기 처리는 언제 필요할까? 간단한 코드 예제로 asyncio를 사용한 비동기처리 그리고 redis celery를 사용한 비동기처리를 살펴보자

Read More

ORM 과 트랜잭션

  • 3 min read

ORM Object-relational mapping 은 객체와 데이터베이스 시스템을 연결(맵핑) 해주는 라이브러리다.

Read More

동시성과 병렬처리, 전환로직에서 동시성 고려

  • 9 min read

동시성 처리는 애플리케이션 내에서 동시에 실행되는 여러 스레드 또는 프로세스를 관리하는 프로세스를 말합니다. 이는 애플리케이션이 여러 프로세서 또는 코어를 활용하고 여러 요청 또는 작업을 동시에 처리할 수 있게 해주기 때문에 소프트웨어 개발에서 중요한 측면입니다.

Read More

Auto GPT는 어떻게 시작되었나

  • 28 min read

주목받는 오픈소스 Auto-GPT는 어떻게 시작되었나. 초기 커밋을 살펴보면서 Auto-GPT의 구조와 기능을 파악해보고 실제로 돌려본 몇가지 케이스와 후기를 남겨본다.

Read More

NAVER Deview 2023 Day1 Review(1)

  • 13 min read

Day1 만 신청완료되었고 여러 세션들 중 관심있는 세션들을 듣고 내용을 요약정리했습니다. 각 세션 끝에는 간단히 느낀점과 생각들도 정리하였습니다.

Read More

RDBMS NoSQL 차이

  • 4 min read

RDBMS vs NoSQL 의 비교되는 특징과 데이터베스 선택시 어떤 점을 고려해야할지 정리해보았습니다.

Read More

Index 의 모든 것

  • 9 min read

인덱스는 무엇이고 생성방법과 작동방식에 대한 단계별 설명, 인덱스 종류와 유형, 다중인덱스, 예제 케이스를 통한 테이블 컬럼에서 인덱스를 추가할 컬럼을 고르는 기준에 대해 정리해보았습니다.

Read More

MSA vs Monolitic

  • 1 min read

마이크로서비스 아키텍처와 모놀리식 아키텍처는 소프트웨어 애플리케이션을 설계하고 구축하는 두 가지 다른 접근 방식입니다.

Read More

구글 엔지니어는 이렇게 일한다

  • 10 min read

궁금한게 있을때 크롬브라우저로 검색하고 유튜브 영상링크를 공유하고 Keep 으로 메모하고 google Docs, jamboard 까지 구글의 여러 제품을 일상속에서 매일 사용중입니다.

Read More

Travis CI로 AWS ElasticBeanstalk 배포하기

  • 2 min read

소개: 이번 글에서는 지속적인 통합과 배포를 위해 Travis CI를 사용하여 AWS Elastic Beanstalk에 애플리케이션을 배포하는 방법을 다룹니다. 이 튜토리얼은 개발자를 대상으로 하며 이해하기 쉬운 설명, 중급 코드 예제, 단계별 프로세스 분석이 포함되어 있습니다.

Read More

CI/CD 끝장내기

  • 3 min read

어느정도 개발이 진행되고 나면 이제는 개발서버에서 벗어나 실제 운영서버를 갖추어야한다.

Read More

window.close 와 self.close

  • ~1 min read

팝업창을 닫아야 하는데 ie에서는 잘 작동되는 소스가 ipone 웹, 앱에서는 작동되지않는 문제가 발생다른 방법으로 해결하기는 했으나 close 메서드가 다양하게 있는걸 알고 각각의 특징을 정리해두고자 한다

window.close();
현재창을 닫거나 호출된 창을 닫는다이 메서드는 window.open() 메서드를 사용해서 열린 창들에게만 적용된다스크립트로 호출된 창이 아니면 다음과 같은 에러가 나오기도 한다Scripts may not close windows that were not opened by script.

Read More

공변성/반공변성(Variance)

  • 3 min read

공변성/반공변성(Variance) 스칼라의 타입 시스템은 다형성 뿐 아니라 클래스 계층관계도 처리해야만 한다. 클래스의 계층은 상/하위 타입 관계를 만든다. OO와 다형성이 합쳐지면서 생기는 핵심문제는 바로 “

Read More

Back to Top ↑

ML

6th week reading list

  • 3 min read

Murphy Ch11. Mixture models and the EM algorithm 

  • 11.1  Latent variable models 숨겨진 변수 leaden variable or lvm 
    2가지이유에서 이점이 있다 lvm 은 더 적은 파라미터를 갖는다

  • 11.2  Mixture models 다대다 일대다 다대일 일대일 형식의 모델로 구분된다

base distribution 을 mixing 하는것이라 mixture model 이라고 부른다혼합모델은 크게 2개가 있는데 하나가 black-box density model이고 데이터 요약, 이상치 검출, 분류를 생성할때 유용하다

다른 하나는 클러스터링에 적합
Soft clustering 은 한 개체가 여러 군집에 속할수있음
Hard clustering 은 한 개체가 여러 군집에 속하는 경우를 허용하지 않는 군집화 방법
효모유전자 시간경과에 따른 데이터 plot, 16개 클러스터 중심을 만듬

11.5 그림을 보면 mixing weights가 나와있는데 결과가 좋지않다
모델이 너무 단순해서 숫자의 시각적인 특성들을 잡아내지 못한다
Likelihood function이 볼록하지않다

mixture of experts 
expert 전문가 또는 학습자
각각의 하위모델들을 입력공간의 특정지역의 학습자로 여긴다
Inverse 문제를 푸는데 유용하다
x축에 값들에 대해 unique한 값을 갖는 y들을 forwards model 
Posterior mean은 좋은 예측치를 만들지 못한다
그러나 posterior mode는 input 값이 종속적이라면 합리적인 추정치를 제공한다

11.3 Parameter estimation for mixture models 
파라미터들을 어떻게 배우는지 이야기해보자
결측치가 없고 hidden 변수가 없는걸 complete data 라고 한다

K=2 인 2차원 가우시안 혼합 모델의 데이터에 대해서 우도함수는 두 개의 피크를 포함하고 있다. 
사후확률이 다수의 봉우리를 포함한 (multimodal ) 형태로 표현될 수도 있다는 것이다
Unidentifiability MLE가 unique 하지않다
유일한 최대우도 (MLE)이 존재하지 않기 때문에, 매개변수는 식별가능하지 않다고 한다.
그러므로 사전확률이 특정 라벨링에 영향을 주지 않는다면, 유일한 최대 사후확률 추정(MAP)도 존재하지 않는다
이는 사후확률이 다수의 봉우리를 포함한 형태라는 것과 같은 의미이다
사후확률이 포함하는 봉우리의 개수가 몇 개인지 찾는 것은 어려운 문제다. NP-hard 문제

MCMC

Globally optimal MLE를 찾는다 따라서 MAP 가 된다

11.4 The EM algorithm 
expectation maximization, or EM 
latent 변수를 알지못하기에 Log likelihood의 기대값을 사전확률분포에 취한다
K-means 알고리즘에서는 유클리디언 거리 함수를 사용하는 반면에 EM 알고리즘은 log-likelihood 함수를 
사용하여 모델의 적합성을 평가한다. K-means가 거리 기반 군집 방법인 것에 비하여 EMdms 확률 기반 군집이라고 한다. 

Estep 추정단계
k개의 확룰 분포에 대하여 각 레코드들이 속할 확률을 계산하여 weight로 변환하여 배정한다

Mstep 최대화단계
혼합모델의 매개변수들을 업데이트한다

EM알고리즘과 K-means 알고리즘과의 관계
K-mean 알고리즘은 임의의 데이터셋을 클러스터링 할 때 쓰이는 알고리즘으로, 가우시안
혼합 모델의 EM 알고리즘과 비슷하다. K-means 알고리즘의 경우, 각 데이터 포인트에 클러스터를 정확히
1가지 지정하는데 반해 EM 알고리즘은 여러개의 클러스터에 대해 사후확률에 비례하도록 지정한다

Vector quantization 
연속적으로 샘플링된 진폭값들을 그룹핑하여 이 그룹단위를 몇개의 대표값으로 양자화
음성압축, 영상 압축 부호화기법, 음성인식, 패턴인식 등 여러분야에 사용
단점 : 매우 낮은 데이터율에서도 높은 효율성을 갖지만, 반면에 양자화 왜곡을 제어하기 어려움
장점 : 구조가 단순하며 압축률이 높음
비록 인코딩 과정에서는 속도가 느리나, 디코딩 과정에서는 새인에 의해 코드북을 1회만 참조하게되므로 속도가 빠름

군집화에서 고려해야하는 중요한 문제점

  1. 최적의 클래스(확률분포모델) 개수는 몇 개인가? ( K의 개수 결정)
  2. 주어진 데이터에서 가장 근접한 클래스(확률분포모델)은 무엇인가? (클러스터링 과정)
  3. 오차가 가장 최소가 되는 클래스(확률분포모델)는 무엇인가? (클래스 특징을 변화)위의 3가지 문제를 고려하여 클래스 구성과 최적화 과정을 EM 알고리즘을 통하여 진행한다
  • 11.4.5 EM for the Student distribution  
    결측치도 없는데 왜 EM 을 사용하는가? 인공적인 hidden or 보조변수로 알고리즘을 단순화하기 위함이다
    Gaussian scale mixture 
    Mixtures of Student distributions 
    11.4 도표를 보면 Student 모델은 4개의 에러, 가우시안 모델은 21개의 에러
    Class 조건부 확률밀도에 극단값이 포함되어 가우시안 모델이 잘못된 선택을 하기떄문이다

  • 11.4.7 Theoretical basis for EM 11.4.7.1 Expected complete data log likelihood is a lower bound 
    Q(θ ,θ ) = logp(xi|θ ) = l(θ ) (11.93) 

EM monotonically increases the observed data log likelihood 

11.4.8 Online EM 
incremental EM 
각 데이터셋마다 기대되는 충분한 통계가 저장되어있어야한다
stepwise EM 
확률적 추정이론
전역적인 최대치를 찾기위해선 한가지 방법으로 deterministic annealing 

11.5 Model selection for latent variable models 
클러스터의 갯수 K를 특정짓는것 모델을 고르는것이다

  • 11.5.1  Model selection for probabilistic models marginal likelihood lvm의 를 측정하기가 어렵다모델의 수가 큰수라 검색할 필요
  • 11.5.2  Model selection for non-probabilistic methods

11.21 도표에서 c그림은 무얼 의미하는가?
K를 어떻게 고를수있나
K별로 reconstruction errorfmf plot 해보면서 알수있다

11.6 Fitting models with missing data

Read More

Back to Top ↑

Career

1 on 1 좋은 질문모음

  • 1 min read

1 on 1 미팅은 정말 중요한걸 알지만 일정한 주기로 실행하기 위해선 서로 노력이 필요하고

Read More

Back to Top ↑

Django

어서와, Django 검색은 처음이지?

  • 5 min read

django-haystack + Whoosh + drf_haystack
Django 검색관련하여 여러 글들을 확인했지만 해당 패키지 tutorial 예제를 그대로 가져와서 번역한 정도였다. 실제 서비스에 검색을 적용하려고 보니 몇 걸음 더 나아간 설정이 필요했고 그 과정에서 알게된 것들을 이번 포스팅에 정리해 보았다. —


Read More

API 그리고 Django REST framework View들 비교하기

  • 3 min read

API를 알게되고 개발에 직접 사용하게 된 것은 얼마되지 않았다.
API는 백엔드와 프론트가 분리되어 개발되는 현재 우리팀에서도 물론 필요하고 아래 그림처럼 API를 사용하는 End Consumers 가 다양해지는 앞으로의 환경속에서는 그 사용이 더 늘어날 것이다.

Read More

Django가 좋은 백 한가지 이유

  • 5 min read

Django를 이용해 웹 어플리케이션을 개발하면서 기존에 사용했던 Java 와 다른 장점들을 느낄 수 있었다. Django 의 장점이 많지만 그 중에 몇가지 정도만 설명해보려 한다

Read More

Back to Top ↑

Agile

Back to Top ↑

Docker

Back to Top ↑