본문 바로가기

텐서플로

(6)
임베딩(Embedding) 순환신경망(Recurrent Neural Network, RNN) 1. 임베딩■ 컴퓨터는 사람이 사용하는 자연어(한글, 영어 등)를 그대로 이해하지 못한다. 그러므로 컴퓨터가 이해할 수 있는 벡터로 변경해야 한다. 이런 변경을 임베딩이라고 말한다. 그러므로 임베딩이 잘 될수록 높은 모델 성능을 기대할 수 있다.■ 임베딩과 관련된 다양한 방법들이 있는데, 크게는 '단어 수준'의 임베딩(Word2Vec, FastText)과 '문장 수준'의 임베딩(Elmo, Bert, GPT 등)으로 구분한다.- 단어 수준의 임베딩은 동음이의어(글자의 소리는 같지만 뜻이 다른 단어 - 눈, 차, 배 등)를 구별할 수 없지만,- 문장 수준의 임베딩은 사람처럼 문장의 '앞뒤'를 보고 의미를 파악할 수 있다. ■ 단어 수준의 임베딩을 위해 단어, 음절, 형태소 등으로 나누고 이를 수치로 변환한다..
텐서플로 합성곱 신경망(CNN) (2) 사용한 데이터 셋: https://www.kaggle.com/datasets/tongpython/cat-and-dog?select=test_set 3. 데이터 증강■ 학습 데이터가 너무 적으면 새로운 데이터에 일반화할 수 있는 모델을 훈련할 수 없기 때문에 과대적합이 발생한다. # https://www.kaggle.com/datasets/tongpython/cat-and-dog?select=test_set에서 데이터 셋 압축 해제import osprint("Training directory contents:", os.listdir(train_dir))print("Validation directory contents:", os.listdir(valid_dir))```#결과#```Training direct..
텐서플로 합성곱 신경망(CNN) (1) 참고) 합성곱 신경망(CNN) (1) 합성곱 신경망(CNN) (1)1. 합성곱 신경망(Convolutional Neural Network, CNN)■ CNN은 이미지 인식, 음성 등 다양한 곳에 사용되며, 특히 이미지 인식 분야에서 활용도가 높다.■ 인접한 계층간 모든 뉴런이 연결된 완전 연결 계층hyeon-jae.tistory.com1. Sequential API로 모델 생성■ CNN 모델은 다음 그림과 같이 이미지에 대한 특징을 추출한 다음, 추론을 위해 평탄화한 후 출력층에 데이터를 넣게 된다.■ 따라서 합성곱 계층은 Conv2D 레이어, 풀링 계층은 최대 풀링이나 평균 풀링 레이어를 사용하고 FCN으로 넘어가기 위해 CNN 부분이 끝나면 데이터를 평탄화하기 위해 Flatten 레이어를 사용한다.■..
케라스(Keras) (2) 1. 콜백■ MNIST 데이터 셋같이 데이터의 개수가 6만장, 7만장이 아닌 60만장, 700만장, 6000만장, .... 인 대규모 데이터셋에서 fit( ) 메서드를 사용해 수십 수백 번의 에포크를 긴 시간 동안 수행했을 때, 이를 저장하지 못하거나 결과에서 이상 징후가 발견되는 등 처음부터 다시 긴 시간 동안 학습을 시작해야 한다.■ 이를 방지하기 위해 사용하는 것이 바로 콜백(callback)이다.■ 콜백은 모델 훈련 시 사용하는 fit( ) 메서드에 callbacks 매개변수로 지정하여 모델 체크포인트(checkpoint), 조기 종료(early stopping), 학습률 스케줄러(learning rate scheduler) 등 모델 훈련에 보조적인 옵션을 넣을 수 있다. 1.1 모델 체크포인트(..
케라스(Keras) (1) https://keras.io Keras: Deep Learning for humansA superpower for developers. The purpose of Keras is to give an unfair advantage to any developer looking to ship Machine Learning-powered apps. Keras focuses on debugging speed, code elegance & conciseness, maintainability, and deployability. When you chokeras.iohttps://tensorflow.org TensorFlow모두를 위한 엔드 투 엔드 오픈소스 머신러닝 플랫폼입니다. 도구, 라이브러리, 커뮤니티 리소스로..
텐서(Tensor) (1) 1. 텐서플로 자료구조■ 텐서는 데이터를 다차원 배열 형태로 표현한 것으로 딥러닝에서는 텐서가 데이터를 표현하는 기본 단위로 사용된다. ■ 텐서의 차원(축)은 차수가 1씩 증가함에 따라 데이터 구조가 확장된다. 스칼라 \( \rightarrow \) 벡터 \( \rightarrow \) 행렬 \( \rightarrow \) 3차원 텐서 \( \rightarrow \) 4차원 텐서.... 이렇게 구조가 확장되면서 점이 선으로, 선이 면으로, 면이 입체로 변화한다.- 위의 그림에서 랭크는 텐서의 차수를 의미한다.■ 여기서 차수(차원의 수)는 텐서를 구성하는 벡터의 개수이다.- 0차원 텐서인 스칼라는 텐서를 구성하는 벡터의 개수가 0 개, 1차원 텐서인 벡터는 벡터의 개수가 1개, 2차원 텐서인 행렬은 벡터의..