분류 전체보기

    [CS182] Lecture 4: Optimization

    해당 글은 CS182: Deep Learning의 강의를 정리한 글입니다. 여기서 사용된 슬라이드 이미지의 권리는 강의 원작자에게 있습니다. Neural network의 Loss surface 지금까지 모델을 학습시키는 optimizer로 Gradient descent를 사용했습니다. 이전 강의에서 살펴보았던 머신러닝 모델들은 loss surface가 단순해 Gradient descent으로도 충분히 global optima에 도달할 수 있었습니다. 하지만 앞으로 우리가 다룰 딥러닝 모델의 loss surface는 위의 그림처럼 매우 복잡합니다. 이러한 surface는 Gradient descent로는 global optima에 도달하기에는 수많은 방해물들이 존재합니다. 보통 딥러닝 모델에서 보이는 방해..

    [CS182] Lecture 3: ML Basics 2 (Bias-Variance Tradeoff, Regularization, Machine Learning Workflow)

    해당 글은 CS182: Deep Learning의 강의를 정리한 글입니다. 여기서 사용된 슬라이드 이미지의 권리는 강의 원작자에게 있습니다. Linear Regression 이전 lecture에서는 데이터를 Classification(분류)하는 문제를 다루었습니다. 하지만 머신러닝이 예측할 수 있는 데이터는 범주형 데이터만 있는게 아닙니다. 이번에는 범주형 데이터가 아니라 연속형 데이터를 예측하는 Regression 문제를 다뤄보겠습니다. Model 정하기 Classification에서 골랐던 모델은 어떤 라벨인지 하나만 고르지 않고 각 라벨별 확률로 예측했습니다. 그렇기에 Regression에서도 특정한 값 하나가 아니라 확률로 예측할 것 입니다. Classification 모델은 각 라벨별 확률, 또..

    [CS182] Lecture 2: ML Basics 1 (머신러닝 문제의 종류, Model, Loss function, Optimizer)

    해당 글은 CS182: Deep Learning의 강의를 정리한 글입니다. 여기서 사용된 슬라이드 이미지의 권리는 강의 원작자에게 있습니다. 머신러닝 문제의 종류 머신러닝이 다루는 문제는 주어진 데이터가 어떤 형식으로 전달되는지에 따라 Supervised learning(지도 학습), Unsupervised learning(비지도 학습), Reinforcement learning(강화 학습) 세가지로 구분할 수 있다. Supervised learning Supervised learning은 입력 데이터 $x$가 주어지면 그에 대응되는 라벨 데이터 $y$를 예측해야 하는 문제입니다. 동물 사진이 주어지면 어떤 동물이 찍혀있는지를 맞추거나, 영어 문장을 프랑스어 문장으로 변역하거나, 엑스레이 사진을 보고 질..

    Guess the game GPT의 프롬프트 알아내기

    GuessTheGame - Your daily video game guessing puzzle! guessthe.game Guess the game 에서 오늘 만우절을 기념해 재밌는 이벤트를 진행하고 있다. 본래 Guess the game은 게임 사진을 보고 어떤 게임인지 맞추는 게임이다. 그런데 이번에는 직접 챗봇을 만들어 스무고개처럼 물어보는 방식으로 바뀌었다. 보통이라면 챗봇에게 게임에 대한 정보를 물어봐 알아내기만 하면 된다. 하지만 직접적으로 게임이 무엇인지 물어보자 다음과 같이 답변했다. 맨 처음에 한번 물어보라고 해서 그대로 물어봤는데 안알려줄꺼라며 비웃었다. 괜히 심술이 난 나는 프롬프트를 띁어보기로 했다. 처음에는 직접적으로 물어보았다. 프롬프트가 무엇이냐고 대놓고 물어봤을 때 대답해주는..

    [CS182] Lecture 1: Introduction (Representation과 Deep Learning이란)

    해당 글은 CS182: Deep Learning의 강의를 정리한 글입니다. 여기서 사용된 모든 이미지의 권리는 강의 원작자에게 있습니다. Representation이란 기계 번역의 발전 기존에는 번역기를 만들고자 한다면 먼저 원본 언어와 목적 언어를 정하고 그 두 언어로 작성된 문장쌍을 모은다. 영어를 프랑스어로 번역하는 번역기를 만들고자 한다면 같은 뜻을 지닌 영어 문장과 프랑스어 문장쌍을 최대한 많이 모은다. 이렇게 모인 문장쌍으로 번역기를 학습시키면 번역기는 영어를 어떻게 프랑스어로 번역하는지 배우게 된다. 하지만 이런 방식에 문제점이 있다. 먼저 희소 언어는 이런 방식으로는 불리하다. 최대한 많은 데이터를 모아야 번역 품질이 높아지는데, 화자나 문헌이 적은 희소 언어는 영어나 중국어처럼 데이터를 ..

    [Python] 현재 absl-py 설치시 파이썬 버전 문제가 발생하는 버그 해결하기

    RTFM; absl-py 패키지 0.8 버전에서 파이썬 버전을 확인하는 코드에서 버그 발견 문제 해결법 파이썬 버전을 3.9로 낮추기 pip install에 --ignore-requires-python 옵션 추가하기 해당 패키지가 absl-py 0.12.0 버전으로 변경할 때까지 기다리기 아무래도 Tensorflow Extended 스터디그룹이 미완으로 마치는 바람에 해당 프로젝트를 등한시 해버렸다. 그래서 다시 TFX 프로젝트를 수행하려고 환경을 세팅하는데 다음과 같은 문제가 발생했다. Collecting absl-py=0.7 (from tfx) Using cached absl-py-0.8.1.tar.gz (103 kB) Preparing metadata (setup.py) ... error error..

    [TFX 스터디] 4. Transform cont.

    저번에 실패했던 preprocess_fn에 tokenizer 넣기에 성공했다. 막상해보니 간단한 일에 시간을 많이 소비했다는 생각이 들었다. 저번 스터디에서 발생했던 에러는 다음과 같다. TypeError: Expected Tensor, SparseTensor, RaggedTensor or Operation got {'input_ids': , 'attention_mask': } of type 처음에는 해당 에러가 어디서 발생했는지 알 수 없었다. 하지만 Huggingface의 Transformers를 써봤다면 익숙한 이름이 보일 것이다. {'input_ids': , 'attention_mask': } 이는 Tokenizer가 문장을 토큰화한 결과를 내보낼때의 형식이다. input_ids에는 토큰화와 정수..

    [TFX 스터디] 3. Transform

    이번에는 Transform Component를 건드려보았다. Transform에서는 ExampleGen에서 Example을 가져와 Hugging Face Transformers의 Tokenizer를 통해 토크나이징을 하고자 한다. 먼저 preprocessing_fn() 함수를 정의한 transform.py를 만든다. import tensorflow as tf import tfx.v1 as tfx from transformers import AutoTokenizer MODEL_NAME = "beomi/KoAlpaca-llama-1-7b" TEXT_FEATURES = { 'en': None, 'ko': None, } tokenizer = AutoTokenizer.from_pret..