본문 바로가기

인공지능56

tf.matmul과 tf.multiply 차이 (행렬곱, 성분곱) tf.matmul는 행렬곱 연산을 수행하며 tf.multiply는 element-wise 곱(성분곱) 연산을 수행함. 예시를 들어 연산을 수행해보자. 다음과 같은 상황을 가정해보자 # 예시 상황 a = [[1,2,3], [4,5,6]] b = [[1,2],[3,4],[5,6]] 행렬곱 연산은 정상 동작하나, # tf.matmul 연산 tf.matmul(a, b) 성분곱 연산은 오류가 발생한다. # element-wise 연산 tf.multiply(a, b) Traceback (most recent call last): File "", line 1, in File "환경정보/tensorflow/python/util/traceback_utils.py", line 153, in error_handler rai.. 2023. 7. 18.
[Kaggle] A Journey of Enzyme Classification 목차 0. 개요 참여 기간: 2023.06.29 ~ 2023.07.09 (약 10일) 1. Motivation AI 관련 업무를 맡아 수행한지 벌써 3년이 거의 다 되어가는데, kaggle에 매우 늦게 입문했다. 사실은 계정을 만든지는 꽤 오래되었지만, 일에 치인다는 핑계와 높은 성과를 낼 수 없을 거라는 두려움에 시작하지 않았다. 이직하고 이제 딱 3개월이 되었는데, 이전 회사에 비해서 업무 자유도가 매우 높아서 역량 강화에 많은 시간을 할애할 수 있게 되었다. 마침 KPI에도 Competition 항목이 있어서, 이번 기회에 시작해보기로 했다. 2. Joined!! 목표 AUROC 0.6 이상 달성하기 성능 높이는 노하우 터득하기 처음으로 성능을 내보겠다고 다짐하며 참여한 대회여서, 마음속에만 큰 꿈.. 2023. 7. 17.
Autoencoder & Anomaly Detection (오토인코더와 이상 탐지) 강남우 교수님의 youtube 강의를 수강한 기록이다. 오토인코더 구조는 사용할 일이 많아 잘 알고 있었으나, 이를 이상 탐지에 사용할 수 있다는 점이 흥미로워 강의를 들어보았고, 매우 간단하나, 재미있어보여서 mnist 데이터로 실제 구현도 해보았다. 1. Autoencoder 오토인코더는 인코더와 디코더로 이루어진, 입출력이 동일한 모델 구조를 말함 인코더의 출력이자 디코더의 입력을 z, latent vector라 하며, 주로 입력 데이터의 크기보다 작게 구성함. 다른 말로는 code, feature, hidden representation이라고도 함 학습을 거듭하면, 입력 데이터는 인코더를 거쳐 latent vector로 표현되고, 이 벡터가 디코더를 거쳐 입력 데이터로 복원됨 데이터를 압축하는 구.. 2023. 7. 14.
MNIST 데이터 읽기 mnist 데이터는 yann 교수님의 페이지에서 다운로드 가능한데, png 등이 아니라 ubyte 형식의 데이터이다. python-mnist 라이브러리를 사용하면 간단하게 데이터를 array 형태로 로드할 수 있어서 이를 사용하여 로드해본다 목차 1. 파일 다운로드 http://yann.lecun.com/exdb/mnist/ 이 링크에서 아래와 같이 파란 상자 안의 링크를 눌러 데이터를 다운받는다. 2. 사용할 라이브러리 임포트 # 설치 명령어 !pip install numpy matplotlib python-mnist # 임포트 import numpy as np import matplotlib.pyplot as plt from mnist import MNIST 3. 데이터 로드 mndata = MNIS.. 2023. 7. 3.
multi-label classification의 활성화 함수와 손실 함수 최근 kaggle에서 enzyme 분류 문제를 풀고 있는데, 처음 시도할 때에 multi-label을 multi-class 문제로 풀어 성능이 잘 안나왔고, 원인을 분석하다가 정리해보았다. 분류에는 크게 세 종류가 있으며, 인공신경망의 마지막 활성화함수와 손실함수는 일반적으로 아래와 같이 사용하면 된다. binary classification: 0 또는 1 중 하나를 고르는 문제로, sigmoid 함수와 binary crossentropy를 사용하면 된다. multi-class classification: 일반적인 categorical classification으로, 3개 이상의 클래스 중 하나를 고르는 문제. softmax 함수를 사용해야 하며, 손실로는 categorical crossentropy를 .. 2023. 7. 1.
LlamaIndex로 검색 엔진 구축하기 (라마인덱스, openai-cookbook) 목차 포스팅 개요 사내 ChatGPT 유즈 케이스 분석 스터디에서 사용할 예제를 찾던 중, 23/06/23(지금 기준 지난주)에 openai-cookbook에 올라온 예시가 재미져보여서 한 번 쭉 훑어보고 해석한 내용을 작성하였다. 이번 기회를 통해 생소한 툴인 라마인덱스가 도대체 뭐고, 어떻게 활용되는지를 간단하게 나마 이해할 수 있어서 만족스러웠다! 주제: LlamaIndex를 통해 대용량 문서를 읽고, 언어모델로 임베딩하고, 유사도에 기반하여 query를 처리하는 것을 매우 간단한 코드를 통해 수행할 수 있다. 심지어 하위 쿼리도 만들어서 처리해준다. 예제 내용: LlamaIndex를 이용하여 큰 크기의 재무제표에서 필요한 정보를 신속하게 추출하고, 여러 문서의 인사이트를 종합하여 재무 분석가를 지.. 2023. 6. 29.