본문 바로가기

ML & DL11

SPARQL 사용법 참고 블로그 https://joyhong.tistory.com/65 H_13. SPARQL 사용하기 몇개월 전에 특정 사이트에 추가하기 위한 필요에 의해 작성하였던 SPARQL 사용설명을 공개합니다. SPARQL(SPARQL Protocol and RDF Query Language)은 W3C의 표준으로서 RDF 쿼리 언어입니다. 데이터베이스에서 joyhong.tistory.com 2023. 8. 7.
DIN-SQL: Decomposed In-Context Learning of Text-to-SQL with Self-Correction (2023) DIN-SQL: Decomposed In-Context Learning of Text-to-SQL with Self-Correction. arXiv:2304.11015v2 [cs.CL] 27 Apr 2023 [ Abstract ] 우리는 복잡한 text-to-SQL 작업을 더 작은 하위 작업으로 분해하는 문제와 이러한 분해가 추론 프로세스에서 LLM(대형 언어 모델)의 성능을 크게 향상시킬 수 있는 방법을 연구합니다. 현재 Spider와 같은 까다로운 text-to-SQL 데이터 세트에서 fine-tuning 모델과 LLM을 사용하는 prompting 접근 방식 사이에는 상당한 성능 차이가 있습니다. 우리는 SQL 쿼리 생성을 하위 문제로 나눌 수 있고 이러한 하위 문제의 솔루션을 LLM에 공급하여 성능.. 2023. 7. 27.
[CS231n] Lecture 9 | CNN Architectures 이번 강의에서는 대표적인 CNN Architectur에는 어떤 것들이 있는지 알아보도록 하겠다. CNN이 주목을 받기 시작하게 된 계기는 AlexNet라고 할 수 있다. 이 강의에서는 각 모델에서 필요한 Meomory와 Parameter의 수를 중점적으로 설명을 한다. AlexNet을 도식화 하면 다음과 같다. 이 논문을 2012년에 발표를 했었는데, 그 당시 컴퓨터 성능이 좋지 않아서 네트워크를 분산시켜 GPU에 넣었다. 그래서 feature map을 추출할 때 2개의 영역으로 나누어져 있다. AlexNet의 특징들은 다음과 같다. ILSVRC 우승 모델 중 다음으로 알아볼 모델은 VGG모델이다. AlexNet과 비교를 했을 때, Layer의 수가 확실히 깊어진 것을.. 2020. 12. 5.
[CS231n] Lecture 8 | Deep Learning Software 딥러닝 프레임워크에 대해서 알아보자! CPU는 central processing unit, GPU는 graphics processing unit이다. 이 둘은 어떤 차이가 있는 것일까? CPU는 컴퓨터의 뇌에 해당하는 부분이라고 생각하면 된다. 컴퓨터에서 구성 단위 중 기억, 해석, 연산, 제어부분을 수행하는 중요한 녀석이다. 좀 더 적은 core의 수로 연속적인 일을 처리하는데 CPU가 자주 쓰인다. GPU는 computer graphics를 Rendering하기 위해 쓰이는 녀석이다. 더 많은 core로 일을 병렬적으로 수행하고 싶을 때 GPU가 자주 쓰인다. GPU는 내부적으로 자체적인 RAM을 가지고 있다. 아래 표를 보면 차이점을 알 수 있다. GPU에도 여러 종류가 .. 2020. 11. 28.
[CS231n] Lecture 7 | Training Neural Networks II 지난 강의를 돌이켜보면 Neural network에서 가장 중요한 것은 바로 최적화 문제였다. vanilla gradient descent를 하게되면 위 식처럼 weight를 초기화 해준다. 여기서 batch단위로 끊어서 한게 SGD이다. 미니 배치 안에서 데이터 loss를 계산하고, 그리고 gradient의 반대 방향을 이용해서 파라미터 벡터를 업데이트 시켜준다. 그런데 SGD의 문제점이 있다. 손실함수의 모양에 따라 영향을 많이 받는다. 위 그림처럼 타원 모양을 갖게 되면 저 빨간색 점에서 스마일표시까지 어떻게 찾아가게 될까? 위의 경우 loss가 수직 방향의 가중치 변화에 훨씬 더 민감하게 반응하여서 빨간색 선처럼 gradient의 방향이 매우 크게 튀면.. 2020. 11. 28.
[CS231n] Lecture 6 | Training Neural Networks I 오늘의 학습내용이다. 우리가 network parameter를 최적화하는 방법 중 Gradient Descent Algorithm에 대해서 배웠다. 그리고 모든 data를 가지고 gradient descent Algorithm에 적용을 하면 계산량이 많기 때문에 SGD(Stochastic Gradient Descent) Algorithm을 이용한다. Sample을 뽑아내 Gradient Desscent Algorithm을 사용하는 방법이다. 처음에 모델을 어떻게 선정해야 하고, Training 할 때 유의해야할 사항은 무엇인지 평가는 어떻게 해야하는지 한 번 알아보자. Activation Function의 종류에.. 2020. 11. 28.
[CS231n] Lecture 5 | Convolutional Neural Networks 이번 강의에서는 Convolutional Neural Network(CNN)가 어떻게 작동하는지를 살펴볼 것이다. Fully Connected Layer에서 하는 일은 어떤 벡터를 가지고 연산을 하는 것이다. activation은 이 layer의 출력이다. 기존의 FC layer가 입력이미지를 쭉 펼쳤다면 이제는 기존의 이미지 구조를 그대로 유지하게 된다. 그리고 filter가 우리의 가중치가 되는 것이다. filter를 가지고 이미지 슬라이딩을 하면서 공간적으로 내적을 수행하게 된다. 여기서 깊이(depth)는 3이다. 깊이는 전체 깊이를 전부 취하지만, 32x32중 5x5만을 취한다. 필터의 각 W와 이에 해당하는 이미지의 픽셀을 곱해준다. 각 원소끼리 Convolution을 하는 것과 그것을 쭉 펴.. 2020. 11. 14.
[CS231n] Lecture 4 | Introduction to Neural Networks {지난 시간} ... score function에 대해서 SVM의 loss인 hinge loss에 대해서 softmax의 loss인 cross entropy loss에 대해서 규제(regularizaiton)에 대해서 최적화(optimization)에 대해서 경사하강법에 대해서 ... 배웠다! 일반적으로 계산하는 방법은 numerical 방법이다. 근데 이건 속도가 느리고 정확하지 않다는 단점이 있다. 그래서 우리는 해석적 방법(분석적 방법)인 analytic 방법을 많이 사용하고 보통 gradient check를 할 때 numerical gradient를 사용한다고 배웠다. 앞에서 배웠던 것을 그림으로 표현하면 이와 같이 된다. Wx가 곱해져서 들어오고 그 score 값을 function에다가 넣고 거.. 2020. 11. 14.
[CS231n] Lecture 3 | Loss Functions and Optimization 저번 강의에서 배운 것을 정리해보자. 인식에서의 어려운 점을 살펴보았고, 데이터 중심의 방식에 초점을 맞춰보았다. 그리고 이미지 분류에 대해 배웠고 왜 이미지 분류가 어려운지, 컴퓨터가 보는 것과 사람이 보는 것의 차이가 있다는 것도 배웠다. 분류를 어렵게하는 조명의 변화, 변형에 대해 다뤘고 왜 어려운지를 배웠다. 데이터 중심 접근 방법 중에서 가장 단순한 방법인 KNN 분류기에 대해서도 배웠다. 어떻게 KNN을 이용해서 학습데이터를 가지고 각 카테고리 클래스를 분류하는 결정경계선을 학습시킬 수 있는지도 배웠다. cross validation에 대해서 배웠고, train, validation, test 셋으로 나눠서 하이퍼파라미터를 찾는 법도 배웠다. 마지막으로 Linear classification에.. 2020. 10. 24.
[CS231n] Lecture 2 | Image Classification 이미지(image)는 숫자로 이루어진 3D array로 구성되어 있다. 컴퓨터는 이미지를 픽셀 값 즉, 숫자로 생각한다. 이미지가 조금만 달라져도 모든 픽셀 값은 달라진다. 그렇기에 우리가 만드는 알고리즘은 이런 상황에 대해 강인해야한다. (보는 시각의 달라짐, 조명, 형태의 변형, 은닉, 배경과 구분 안되는 상황, 클래스내의 구분 등등) 기본적인 image classifier는 이미지를 인자로 받아서 예측을 하는 것이다. 그 이미지가 어느 쪽에 속하는지 label를 반환하는 기본적인 함수를 말한다. 이미지를 구분할 때 직관적이고 명시적인 알고리즘(Hard Code)는 없다. 과거에는 이미지를 보고 특징점들을 찾아내고 edges와 corners를 계산하여 분류하려 했다. 하지만 위 접근방법에는 많은 한계.. 2020. 10. 14.
[CS231n] Lecture 1 | Introduction to Convolutional Neural Networks for Visual Recognition CS231n은 딥러닝 분야 중 Computer Vision에 대한 강의이다. 위의 그림에서 볼 수 있는 것과 같이 Computer Vision은 다양한 분야와 관련되어있다. 본격적으로 Computer Vision 강의를 시작하기에 앞서 오늘의 주제는 아래와 같다. Today's Agenda - A brief history of computer vision (CV 역사) - CS231n overview (개요) 과거 생물들에게는 눈이 존재하지 않았다. 즉, 비전이 존재하지 않았다. 그러나 매우 짧은 기간내에 동물 종의 수가 폭발했다. 그 이유를 비전(시각)에서 찾았다. 시각 발달에 의해 먹이활동이 좀 더 적극적으로 변했고 생물들은 포식자로부터 살아남아야 했다. 본격적으로 비전(시각)은 진화론적인 군비 경쟁.. 2020. 10. 10.