분류 전체보기 76

[AI CONNECT] 노트북으로 GPT 맛보기 ( 6등 / 418팀 )

https://aiconnect.kr/competition/detail/223 AI CONNECT | AI competition Platform No.1 인공지능 경진대회 플랫폼 aiconnect.kr 대회 참여 기간 : 2023/03/20 ~ 2023/03/30 주관 : 마인즈앤컴퍼니 대회 개요 한국어 원본 텍스트를 한 문장으로 요약하는 생성 요약(Abstractive Summary) 문제를 푸는 대회 평가 지표 ROUGE-1, ROUGE-2, ROUGE-L 제공된 데이터 train : 40,400개 column 정보 id : 각 문단을 구분하는 ID 값 text : 원본 문단 텍스트 summary : text의 생성 요약문 test : 500개 리더보드에 제출했을 때, 가장 좋았던 방법 사용 모델 :..

Competition 2023.04.07

[NLP] Intro to NLP

Intro to Natural Language Processing(NLP) 자연어 처리(NLP)란? 컴퓨터가 주어진 단어나 문장을 이해하는 과정(NLU) 자연어를 상황에 따라 자연스럽게 생성(NLG) 두 과정이 포함되어 있음 Academic Disciplines related to NLP NLP 최신 논문들이 주로 공개되는 학회 ACL, EMNLP, NAACL Low-level parsing tokenization, stemming Word and pharse level NER : 고유 단어를 파악하는 task POS tagging : 단어들이 문장 내부에서의 어떠한 품사인지 알아내는 task noun-phrase chunking dependency parsing coreference rsolution ..

[Python] 백트래킹

백트래킹이란? 현재 상태에서 가능한 모든 경로를 따라 들어가 탐색하다, 원하는 값과 불일치하는 부분이 발생하면 더 이상 탐색을 진행하지 않고 전 단계로 올라가는(방금 왔던 길을 되짚어가는) 알고리즘 백트래킹과 DFS의 차이 백트래킹 불필요한 탐색을 하지 않는다. DFS 모든 경우의 수를 탐색한다. 백트래킹 구현 완전탐색 기법인 BFS 와 DFS 로 모두 구현 가능 백트래킹의 특성(전 단계로 다시 올라가는) 때문에 DFS의 구현이 더 편하다. 한정 조건 이 가장 중요하다. 모든 경우의 수에서 한정 조건 을 만족하는 경우를 탐색 대표 문제 15649번: N과 M (1) 문제 자연수 N과 M이 주어질 때, 숫자 1부터 N까지 중복 없는 M개의 요소를 가진 수열을 구하자 💡 고려 사항 배열의 길이가 M을 넘지 ..

Python/Algorithm 2023.04.06

[Python] 냅색 알고리즘(Knapsack Problem) - Dynamic Programming(DP)

냅색 알고리즘이란? 한 배낭에 담을 수 있는 무게의 최댓값이 정해져 있고, 일정 가치와 무게가 있는 짐들을 배낭에 넣을 때, 가치의 합이 최대가 되도록 짐을 고르는 방법을 찾는 문제 냅색 알고리즘을 나누는 기준 담을 수 있는 물건이 나뉠 수 있는가, 없는가? 담을 수 있는 물건이 나누어 질 때 분할가능 배낭문제(Fractional Knapsack Problem) 담을 수 있는 물건이 나누어질 수 없을 때 0-1 배낭 문제(0-1 Knapsack Problem) 냅색 알고리즘 예시 가방에 20kg까지 담을 수 있습니다. 현재 3가지 물건을 가지고 있을 때, 가치를 최대로 가지려면 어떤 물건들을 담아야 하나요? A : 가치 10, 무게 14kg B : 가치 7, 무게 10kg C : 가치 8, 무게 10kg..

Python/Algorithm 2023.03.19

[DEVIEW 2019] Dialog-BERT: 100억 건의 메신저 대화로 일상대화 인공지능 서비스하기

DEVIEW 2019 발표자 : 이주홍(@roomylee) Pingpong, Scatter Lab 1. 일상대화와 BERT 이해하기 사람 → 내일 데뷰에서 발표하는데 너무 떨려 AI → ??? 이해를 하지 못했어요. 제가 할 수 없는 일이에요 사람 → 응… 위 대화는 사람이 AI 스피커에게 시도한 대화이다. AI는 위로하고 공감해주는 편안한 일상대화 능력이 부족하다. 왜 일상대화를 잘 못할까? 대화 주제가 무한하다 사람이 얘기하는 모든 주제를 커버해야 함 필요한 지식과 상식이 무한하다. “사과는 빨갛다”, “동물은 숨을 쉰다”, “택시는 타는 것이다” 와 같은 지식과 상식은 인간이 살아가면서 당연하게 학습하지만, 모델은 그렇지 않다. 의도나 목적이 불분명하다 (=정답이 불분명하다) “오늘 날씨가 어때?”..

AI 세미나 2023.01.21

3주차 - CNN (Convolutional Neural Network)

4강.Convolutional Neural Networks convolution 식은 아래와 같다. 우리가 사용할 2D image convolution 에서 i는 전체 이미지 공간이 되고, k라는 것은 적용할 convolution 필터가 된다. padding이나 stride를 고려하지 않고 가장 기본적인 convolution을 하게 되면, 아래 그림과 같이 된다. 필터와 이미지를 겹쳐놓은 후, 각각의 위치에 있는 픽셀 값들을 전부 곱한 후 더해준 것을 output의 한 픽셀로 나타낼 수 있다. 적용하고자 하는 필터에 따라서 output은 각각 다른 효과를 가진 이미지로 나올 수 있게 된다. 일반적으로 우리는 RGB image를 다룬다. 32 x 32 image가 있을 때 3 채널(RGB)이 들어가게 됨으..

3주차 - 최적화

3강. Optimization Important Concepts in Optimization Generalization : 일반화 성능을 높이는 것이 우리의 목적이다. 일반적으로 학습을 시킬 때, iteration이 진행됨에 따라서 train data에 대한 error는 점점 줄어들게 된다. 하지만, training error가 줄어든다고해서 test error가 줄어든다는 말은 아니다. 일반적으로는 학습이 계속 진행됨에 따라서 training error는 계속해서 줄어들지만, test error는 줄어들다가 어느 지점부터 다시 높아지게 된다. Generalization gap은 training error와 test error의 차이이다. 즉, generalization이 좋다는 의미는 generaliz..

3주차 - 딥러닝 기본

1강. Neural Networks & Multi-Layer Perceptron 인공지능이란? 사람의 지능을 모방하는 것이다. 딥러닝에서 중요한 요소는? data : 풀고자 하는 문제에 의존 model loss fuction : 모델을 어떻게 학습시킬까 optimization algorithm Historical Review : 어떠한 연구들이 큰 변화를 주었는가 2012 - AlexNet : AlexNet의 등장으로 딥러닝이 시작되었다고 볼 수 있으며, 기계학습에 대한 판도가 뒤집힘 2013 - DQN : 알파고를 만든 알고리즘이다. 강화학습을 딥러닝에 적용한 방법론이다. 2014 - Encoder / Decoder : 어떤 문장이 주어졌을 때, 이를 잘 표현해서 다른 언어로 표현해 줄 때 활용( 기계..

2주차 - PyTorch 구조 학습하기

4강. AutoGrad & Optimizer torch.nn.Module은 다음과 같은 특징을 가지고 있다. 딥러닝을 구성하는 layer의 base class이다. input, output, forward, backward를 정의해야 한다. 학습의 대상이 되는 parameter(tensor)를 정의해야 한다. nn.Module을 정의하려면, 학습의 대상이 되는 weight 값들을 정의해야한다. 이 weight 값들은 nn.Parameter에 정의하게 된다. nn.Parameter는 다음과 같은 특징을 가지고 있다. Tensor 객체의 상속 객체 nn.Module 내에 attribute가 될 때는 required_grad=True로 지정되어 학습 대상이 되는 Tensor (AutoGrad의 대상이 된다.)..

2주차 - Pytorch 기본

2강. PyTorch Basics pytorch는 딥러닝을 만드는데 가장 기본적인 프레임워크이다. pytorch는 numpy를 기반으로 했기 때문에 그 사용법이 유사하다. pytorch는 numpy와 AutoGrad에 대한 많은 딥러닝 모듈들을 제공한다. numpy에서 list를 표현하기 위해서는 ndarray를 사용하였다. pytorch에서는 list를 표현하기 위해 Tensor를 사용한다. Tensor에 대한 설명은 다음과 같다. 다차원 arrays를 표현하는 pytorch 클래스 numpy의 ndarray와 동일, Tensorflow의 Tensor와도 동일 Tensor를 생성하는 함수도 거의 동일 # numpy _ ndarray import numpy as np n_array = np.arange(..