본문 바로가기

AI 딥러닝/DLA16

[LLM] Ollama Web-UI 설치 Ollama 는 Llama2, Mistral, Gemma 등 대규모언어모델 (LLM)을 개인용 컴퓨터에 설치하고 쉽게 실행할 수 있게 해주는 오픈소스다. 공식 사이트는 다음과 같다. https://ollama.com/ Ollama를 이용하여 명령창에서 언어모델과 대화할 수도 있지만, chatGPT 처럼 웹브라우저에서 주고받는 대화가 더 익숙하다. Open WebUI (구 Ollama WebUI)는 Ollama를 위한 chatGPT 스타일의 웹 인터페이스로서 오픈소스 중에서 가장 인기가 많다고 한다. 윈도나 Mac 노트북에 Open WebUI 를 설치하는 방법은 아래 사이트나 여러 블로그 또는 유튜브에 자세히 나와 있으니 참고하기 바란다. GitHub - open-webui/open-webui: User-.. 2024. 2. 25.
[VAE] beta-VAE 앞서 살펴본 바와 같이(https://pasus.tistory.com/263) VAE의 손실함수는 복원손실 항과 정규화 손실 항으로 구성된다. 식 (1)의 VAE 손실함수에서 첫번째 항인 복원손실은 복원(reconstruction)된 데이터가 원본 데이터와 얼마나 유사한지를 나타내는 오차다. 원본 데이터의 확률분포에 따라서 원본 데이터와 복원된 데이터 간의 교차 엔트로피나 L2 놈(norm)을 사용하여 복원손실을 계산할 수 있다. 두번째 항인 정규화(regularization) 손실은 고차원 입력 데이터를 저차원 잠재변수 공간(latent space)으로 인코딩할 때 잠재변수의 확률분포가 사전에(prior) 규정한 확률분포 \(p(\mathbf{z})\) 와 얼마나 유사한지를 계산하는 KL발산(Kullb.. 2023. 5. 11.
[VAE] 변이형 오토인코더(Variational Autoencoder) 생성모델(generative model)은 데이터를 생성해 낼 수 있는 모델을 말한다. 만약 데이터의 확률분포 \(-\) 데이터가 이산적일 경우는 확률질량함수(probability mass function), 연속적일 경우는 확률밀도함수(probability density function) \(-\) 를 알 수 있으면 샘플링을 통해서 본래 데이터와 같은 확률적 특성을 갖는 새로운 데이터를 임의로 생성할 수 있으므로, 생성모델의 목적은 데이터의 확률분포를 추정하는 것이라고 말할 수 있다. 예를 들면 데이터로서 얼굴 이미지 집합이 주어졌을 때, 그 이미지의 특성을 나타내는 확률밀도함수를 추정할 수 있다면, 새로운 얼굴 이미지를 임의로 생성할 수 있다는 말이다. 생성모델은 고차원(high dimension) .. 2023. 4. 30.
[U-Net] 망막 혈관 세그멘테이션 (Retinal Vessel Segmentation) U-Net을 망막 혈관 세그멘테이션(retinal blood vessel segmentation) 문제에 적용해 보자. 아래 사이트에 가면 데이터셋과 관련 논문, 그리고 텐서플로나 파이토치로 작성한 코드들이 많이 나온다. Papers with Code - Retinal Vessel Segmentation Retinal vessel segmentation is the task of segmenting vessels in retina imagery. ( Image credit: [LadderNet](https://github.com/juntang-zhuang/LadderNet) ) paperswithcode.com 사이트에는 4가지 데이터셋이 나와 있는데, 이중 DRIVE (Digital Retinal Im.. 2022. 5. 11.
[U-Net] U-Net 구조 이미지 세그멘테이션(image segmentation)은 이미지의 모든 픽셀이 어떤 카테고리(예를 들면 자동차, 사람, 도로 등)에 속하는지 분류하는 것을 말한다. 이미지 전체에 대해 단일 카테고리를 예측하는 이미지 분류(image classification)와는 달리, 이미지 세그멘테이션은 픽셀 단위의 분류를 수행하므로 일반적으로 더 어려운 문제로 인식되고 있다. 위 그림에서 semantic segmentation은 이미지 내에 있는 객체들을 의미 있는 단위로 분할해내는 것이고, instance segmentation 은 같은 카테고리에 속하는 서로 다른 객체까지 더 분할하여 semantic segmentation 범위를 확장한 것이다. 이미지 세그멘테이션은 의료 이미지 분석(종양 경계 추출 등), 자.. 2022. 5. 11.
[CNN] 컨볼루션과 상관도 LTI 시스템의 임펄스 반응 \( h[n] \)과 입력 신호 \( x[n] \)의 컨볼루션(convolution)은 다음 식으로 정의한다. \[ y[n] = \sum_{k=-\infty}^{\infty} x[k] h[n-k] \]   한편, LSI 시스템의 임펄스 반응 \( h[m,n] \)과 입력 신호 \( x[m,n] \)의 2D 컨볼루션은 다음 식으로 정의한다. \[ y[m,n] = \sum_{k=-\infty}^{\infty} \sum_{l=-\infty}^{\infty} x[k,l] h[m-k, n-l] \]   컨볼루션은 앞에서 설명했듯이 LTI 또는 LSI 시스템에 입력신호가 가해졌을 때 출력신호를 계산하는 식이며, 컨볼루션은 ‘뒤집기와 이동’ 방법을 사용하여 계산할 수 있다.   상관도(c.. 2020. 9. 22.
[CNN] 이미지 필터 설계해 보기 필터를 설계한다는 것은 곧 LSI 시스템의 임펄스 반응 \( h[m,n] \)을 결정하는 것과 같다. 그러면 입력 이미지가 \( x[m,n] \)일 때, 필터링된 출력 이미지 \( y[m,n] \)은 시스템의 임펄스 반응과 입력 이미지의 2D 컨볼루션으로 주어진다.  \[ \begin{align} y[m,n] &= h[m,n]*x[m,n] \\ \\ &= \sum_{k =-\infty}^{\infty} \sum_{l =-\infty}^{\infty} x[k,l] h[m-k,n-l] \end{align} \]  간단히 3개의 이미지 필터를 설계해 보자.    먼저 이미지를 흐릿하게 만드는 스무딩(smoothing) 필터다. 스무딩 필터의 임펄스 반응은 다음과 같이 정할 수 있다.    임펄스 반응을 보면 .. 2020. 7. 29.
[CNN] 2D 컨볼루션 계산하기 1D 컨볼루션과 똑같은 방법으로 '뒤집기와 이동' 방법을 사용하여 2D 컨볼루션을 계산해보자.  2020/07/25 - [CNN의 수학] - 컨볼루션 쉽게 계산하기 공식을 살펴보면,  \[ y[m,n] = \sum_{k=-\infty}^\infty \sum_{l=-\infty}^\infty x[k,l] h[m-k, n-l] \] 우선 \( x[m,n] \)과 \( h[m,n] \)을 \( x[k,l] \)과 \( h[k,l] \)로 바꿔야 한다는 것을 알 수 있다. 그리고 \( h[k,l] \)을 수평축과 수직축을 기준으로 두 번 뒤집어서 \( h[-k,-l] \)로 만든 후, \( m,n \)만큼 수평과 수직으로 이동시켜서 \( h[m-k,n-l] \)을 만들고, \( k,l \)에 대해서 \( x[k.. 2020. 7. 29.
[CNN] 2D 컨볼루션 독립변수가 1개인 함수로 표현되는 신호 \( x[n] \)을 1차원 신호(one-dimensional signal)라고 한다. 여기서 \( n \)은 인덱스로서 정수 값을 갖는다. 이 인덱스는 보통 시간스텝(time step)을 나타낸다. 1차원 신호와 관련된 컨볼루션을 1D 컨볼루션이라고 하거나 그냥 컨볼루션이라고 한다.   독립변수가 2개인 함수로 표현되는 신호 \( x[m,n] \)을 2차원 신호라고 한다. 2차원 신호에서 인덱스는 주로 공간상의 위치를 나타내는 배열 또는 순서를 뜻한다. 2차원 신호는 행렬로 나타내며 \( m \)은 행, \( n \)은 열을 나타낸다. 대표적인 2차원 신호로는 이미지(image) 신호가 있다.    2차원 신호와 관련된 컨볼루션을 2D 컨볼루션이라고 한다. 지금부.. 2020. 7. 28.
[CNN] 이동평균(moving average) 필터 설계해 보기 필터를 설계한다는 것은 곧 LTI 시스템의 임펄스 반응 \( h[n] \)을 결정하는 것과 같다. 주식 차트를 보면 5일 이동평균선, 10일 이동평균선이라는 것이 있다. 5일 이동 평균은 현재부터 과거 5일전까지의 주가 평균을 계산한 것이다. 10일 이동 평균선도 마찬가지로 현재부터 과거 10일전까지의 주가를 평균 낸 것이다.    그러면 주식 차트의 이동평균선과 비슷하게, 입력 신호에 대한 5 포인트(point) 이동평균 필터와 10 포인트 이동평균 필터를 설계해 보자. 입력 신호를 \( x[n] \)으로 하고, 이동 평균 출력 신호를 \( y[n] \)으로 하면 5 포인트 이동평균 필터의 임펄스 반응은 다음과 같이 설계할 수 있다.  \[ \begin{align} h[n] &= \frac{1}{5} .. 2020. 7. 26.