일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- pyenv
- Mac
- end to end
- 손실함수
- 1101
- 파이싼
- 1002
- 재귀
- 신경망 학습
- 백트래킹
- Python
- 15649
- 설정
- 개발환경
- 백준
- 기계학습
- BOJ
- 가상환경
- 그리디 알고리즘
- 실버
- n과 m
- 밑바닥부터 시작하는 딥러닝
- 경사하강법
- N-Queen
- streamlit
- 4948
- 9020
- 파이썬
- Today
- Total
목록AI&ML (34)
파이톨치
네이버 부스트 캠프를 지원하려고 봤더니, 프리코드 라는 것이 있어서 정리해보려 한다. 학부 과정에서 봤던 내용들이 새록새록 기억 난다. 봤는데 기억 나지 않는 내용도 있고, 처음 본 내용도 있다. 하지만, 나는 장기 기억력이 그렇게 좋은 편은 아니기에 나중에 다시 보기 위해 정리하려 한다. 다루는 내용의 범위가 너무나 방대하여 시험이 있는 3일 뒤까지 정리해보려 한다. 기초 수학 우선, 기초적인 선형대수와 확률에 대해 다루려 한다. AI가 학습하는데 있어서 가장 중요한 것은 벡터일 것이다. 때문에 벡터에 대한 수학을 이해하는 것은 기초이다. 벡터와 노름 (Norm)AI의 학습에서 벡터는 데이터를 표현하는 기본 단위입니다. 벡터를 이해하고 다루는 능력은 머신 러닝과 딥 러닝 모델을 구축하는 데 필수..
unified image-text modeling image-text taskes overview 1. close-set classification 간단한 분류 문제, 인풋은 이미지와 텍스트이다. 싱글 모델이 분류한다. 2. open ended text sequence 관련 task: image captioning, paragraph captioning, open-ended VQA open-vocab에 대한 예측을 한다. 3. Box/mask Localization 관련 task: visual grounding, language-based segmentation 4. pixel prediction 관련 task: text-to-image synthesis, text-based image editin wh..
class Flamingo(nn.Module): def __init__( self, vision_encoder: nn.Module, lang_encoder: nn.Module, eoc_token_id: int, media_token_id: int, vis_dim: int, cross_attn_every_n_layers: int = 1, gradient_checkpointing: bool = False, ): super().__init__() self.eoc_token_id = eoc_token_id self.media_token_id = media_token_id self.vis_dim = vis_dim if hasattr(lang_encoder.config, "d_model"): self.lang_di..
https://kimbg.tistory.com/31 [ML] ViT(20.10); Vision Transformer 코드 구현 및 설명 with pytorch AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE https://arxiv.org/pdf/2010.11929.pdf vit 논문에 관련한 양질의 리뷰는 상당히 많아서, 코드 구현에 관한 설명만 정리하고자 했습니다. 그래도 중 kimbg.tistory.com ## input ## x = torch.randn(8, 3, 224, 224) print('x :', x.shape) patch_size = 16 # 16x16 pixel patch patches = rearra..
def softmax(x): if x.ndim == 2: x = x.T x = x - np.max(x, axis=0) y = np.exp(x) / np.sum(np.exp(x), axis=0) return y.T x = x - np.max(x) # 오버플로 대책 return np.exp(x) / np.sum(np.exp(x)) def cross_entropy_error(y, t): if y.ndim == 1: t = t.reshape(1, t.size) y = y.reshape(1, y.size) # 훈련 데이터가 원-핫 벡터라면 정답 레이블의 인덱스로 반환 if t.size == y.size: t = t.argmax(axis=1) batch_size = y.shape[0] return -np.sum(n..
솔직히 어렵긴 합니다 저도 처음 이 내용을 배울 때 하나도 이해가 가지 않았습니다. 그래서 누군가에게 이를 이해하라고 말할 자신이 없습니다. 오차역전파법은 고등학생 때, 처음 미분을 배웠을 때와 비슷한 느낌이었습니다. 하지만, 미분과 마찬가지로 보다보니 결국은 어떤 내용인지 이해가 갔습니다. 이것도 마찬가지입니다. 처음에는 이해가 가지 않을 수도 있습니다. 하지만 천천히 반복적으로 보다보면 결국에는 이해가 갈 것입니다. 때문에 당장에 이해가 안되도 괜찮다는 말을 하고 시작하겠습니다. 오차역전파법이 어렵다고 생각하는 이유는 우리가 지금까지 사용해보지 않는 계산체계를 사용하기 때문이라고 생각합니다. 여기서는 주로 계산 그래프를 사용하고, 이를 미분하는 형태로 내용을 전개합니다. 계산 그래프를 처음 접하는 상..
포기하지 말시길... 제 생각에는 이번 장부터는 내용이 어려워지고 분량도 많이집니다. 관련된 지식을 이미 알고있는 사람이라면 어렵지 않게 이해하겠지만 처음배우는 입장에서는 이번 장부터 난이도가 급격하게 올라갈 수 있습니다. 저 또한 이번 장부터는 잘 설명할 수 있을지 모르겠습니다. 이번 장에서 배우는 내용은 "학습" 이라는 것입니다. 앞에서도 말했다 싶이 학습이라는 것은 데이터의 패턴을 익히는 과정입니다. 우리가 이번에 할 내용은 어떻게 신경망은 데이터의 패턴을 익히는가 입니다. 학습을 하지 않는다면, 처음에 우리가 퍼셉트론을 만들 때 했던 것처럼 가중치를 하나하나 상황에 맞게 바꾸어 주어야 합니다. 하지만 이렇게 하는 경우에 데이터가 수백만개가 된다면, 우리는 평생을 가중치만 수정하다가 인생이 끝날지도..
간단한 신경망 구현하기 이렇게 생긴 신경망을 구현해봅시다. 우선 가중치는 학습을 해야하지만 우리는 아직 학습을 모른다고 가정하고 하기에 임의의 가중치를 부여하겠습니다. 위의 모양에서 입력이 2개 출력이 2개가 나오는 구조라 아마 2가지 중 한가지로 분류하는 신경망일 것입니다. 일단 은닉층에서 사용할 활성함수는 시그모이드 함수를 사용할 것 입니다. def sigmoid(x): return 1 / (1+np.exp(-x)) 출력층은 항등함수를 사용할 것인데, 사실 함수를 만들 필요는 없습니다. y = x 함수니까요. 아까 말했듯이, 가중치를 학습하는 방법을 모르니 임의의 가중치를 부여해줄 것 입니다. 이를 함수로 만들면 다음과 같습니다. def init_network(): network = {} networ..