목록전체 글 (34)
기록
RNN 은 출력이 입력으로 활용되는 Recurrent 구조를 가지고 있다. 아래는 이러한 시퀀스 구조를 쫙 펼쳤을때의 그림을 나타낸다. 왼쪽그림은 오른쪽에서 cell들의 반복되는 구조를 의미한다. 입력으로 들어오는 시퀀스 데이터를 time step에 따라 처리한다. 예를들어서, 입력 데이터가 "hello"일때 이를 원-핫 인코딩 처리를 하여 벡터화 한 경우 h = [1, 0, 0, 0] e = [0, 1, 0, 0] l = [0, 0, 1, 0] o = [0, 0, 0, 1] 로 표현할 수 있다. 이 경우, h, e, l, o 4개의 문자를 사용하였기에 차원의 수는 4이다. 순차적으로, 입력 데이터 X_0, X_1, X_2, ... 에는 "hello"를 원-핫 인코딩한 데이터가 들어간다. h = X_0 ..
Classification task를 보다보면 sigmoid와 softmax가 사용되는것을 알 수 있다. sigmoid 와 softmax의 차이점에 대해서 알아보고자 한다. 먼저 두 함수의 수식은 아래와 같다. 시그모이트 특징 1. 로지스틱 회귀 모델에서 이진 분류에서 사용된다. 2. 확률이 0~1 사이의 값을 가진다. 합이 1이 아니다. 3. 활성화 함수로 사용된다. * 단일값에 대한 출력 결과를 얻는다. * 단일값에 대해서 0~1 사이의 값을 얻기에 0.5를 기준으로 임계값(Threshold) 1(True) or 0(False)로 판별이 가능해서 사용된다. * 단일값에 대해서 비선형 함수로 사용이 되지만 기울기 소실(Gradient Vanishing) 문제때문에 ReLU를 사용한다. 시그모이드의 미분..
1. midjourney 에 가입한 후, 대화창에 /imagine 를 작성 후 추가적으로 생성하고자 하는 이미지의 디테일을 표현하여 AI 이미지를 생성한다. https://midjourney.com/home/?callbackUrl=%2Fapp%2F Midjourney An independent research lab exploring new mediums of thought and expanding the imaginative powers of the human species. midjourney.com 2. ChatGPT를 통해 음성 보이스의 대본 작성 https://openai.com/blog/chatgpt/ ChatGPT: Optimizing Language Models for Dialogue We..
리스트에 다음과 같이 데이터가 저장되어 있을때 arr = [(55, 185), (58, 183), (88, 186), (60, 175), (46, 155)] 원소 (x, y)로 이루어져 있다. 여러가지 기준을 두고 정렬을 할 수 있다. 1. x를 기준으로 오름차순 arr.sort(key = lambda x : x[0]) 2. y를 기준으로 오름차순 arr.sort(key = lambda x : x[1]) 3. x, y 를 기준으로 오름차순 arr.sort(key = lambda x : (x[0], x[1])) 4. x 는 내림차순, y는 오름차순 arr.sort(key = lambda x : (-x[0], x[1])) lambda 에 조건 2개 이상을 사용한 경우 : 첫번째 원소를 기준으로 정렬을하고 만..
해상도(Resolution)란 우리가 흔히 알고있는 디스플레이의 성능을 판단하는 기준이다. TV의 해상도가 얼마냐라고 했을때 FHD보다 UHD란 말을 들었을때 화질이 더 좋을것이라 인식한다. 먼저, 해상도(Resolution)란 얼마만큼의 픽셀의 수로 이루어져 있는가라고 할 수 있다. 1개의 픽셀은 3원색인 RGB 컬러를 가져 다양한 컬러 색상을 표현한다. 해상도의 단위는 PPI(Pixel Per Inch) : 1인치당 몇 개의 픽셀을 가지는지가 단위이다. PPI가 높다는것은 1인치당 가지고 있는 픽셀의 수가 많다 -> 고밀도 상태(빽빽) 이기에 고해상도를 가진다. 반면에 PPI가 낮다는 의미는 1인치당 픽셀의 수가 적다 -> 저밀도 상태 (듬성듬성) 고해상도를 표현하기에 부족하다. 예를들면, 3840 ..
사이킷런에서 결정 트리(Decision Tree)를 훈련할때 CART 알고리즘을 사용 훈련 세트를 둘로 서브셋을 계속 반복하여 나눈다. 최대 깊이가 되거나 불순도를 줄이는 분할을 찾을 수 없을때 반복 종료
요즘은 데이터분석과 머신러닝에 대해서 공부를 하고 있다. 딥러닝에 관해 공부를 했었지만 조금 더 공부의 범위를 넓혀 공부를 하니 내가 공부한 딥러닝이 정말 조그마한 일부분이란걸 깨달았다. 항상 인공지능의 일부분이 머신러닝이고 머신러닝의 일부분이 딥러닝이다 라고 알고만 있었다. 실제로 밑에서부터 공부를 해서 올라가보니.. 같은 것 같지만 다른 것을 알았다. 그리고 현재 공부하고 있는 것을 잊지 않고 오래 기억하기 위해 메모를 하나씩 하려고 한다. 머신러닝, 데이터 분석과 같은곳에서 가장 중요한것이 데이터이다. 웹 상에는 정말 많은 데이터가 존재하기에 데이터 분석, 머신러닝, 딥러닝에 활용할 재료가 많다. 하지만 무작정 쓸 수는 없기에 내가 필요로 하는 데이터를 긁어서 모을 필요가 있다. 그래서 웹 크롤링을..
다양한 버전을 설치하기위해서 가상환경을 이용한다. Jupyter Notebook에 들어가서 작업을 할때 내가 생성한 가상환경의 버전을 이용해 그대로 사용하기 위해서 가상환경의 커널을 추가해야한다. 아래는 주피터 노트북에 가상환경 커널을 추가하는 방법임. 1. 본인이 생성한 가상환경을 활성화 한다. ex) (ML) 이라는 가상환경을 생성한 경우. activate ML 2. ipykernel 설치 pip install ipykernel 3. 가상환경을 추가. python -m ipykernel install --user --name 가상환경이름 --display-name "커널에 저장할 이름" ex) python -m ipykernel install --user --name ml --display-name ..