전체 글(94)
-
[Algorithm Part 1] 4. PriorityQueue
이전에 배운 collection의 ADT(e.g., stack, queue)는 삽입 순서에 기반해 객체를 삭제했다. 이번 글에서는, 객체 값에 기반해 객체를 삭제하는 collection의 ADT(=PQ)를 살펴볼 것이다. PQ에는 2가지 방식이 존재한다. 1). 가장 높은 값을 가진 객체를 삭제하는 방식과 2). 가장 낮은 값을 가진 객체를 삭제하는 방식이 존재한다. PQ를 통해 다음과 같은 과정을 쉽고 빠르게 수행할 수 있다. 수집한 객체들 중 가장 큰 객체 5개를 찾는다. 기존 객체들에 10개의 새로운 객체를 추가한 후, 가장 큰 객체 3개를 찾는다. Priority Queue Priority Queue는 객체의 집합을 가지고 있는 동시에, 추가/제거 연산을 지원하는 ADT다. 이때, 제거 연산은 가..
2023.04.03 -
[Algorithm Part 1] 3. Stack and Queue
수 많은 applications은, 객체들의 집합(=collection of objects)를 사용한다. 뿐만 아니라 집합의 기본 연산들(e.g., 새로운 객체 추가, 기존 객체 제거)도 사용한다. 이번 글에서는, 이러한 요구사항에 맞게 설계된 기본적인 data types(e.g., stack, queue)에 대해 살펴볼 것이다. stack과 queue의 차이점은 객체 제거 방식이다. stack은 가장 최근에 추가된 객체를 제거하고, queue는 가장 늦게 추가된 객체를 제거한다. 더보기 Modular programming 모듈화 프로그램(modular programming)의 개념은 인터페이스(interface)와 구현(implementation)을 완전히 분리시키는 것이다. implementation..
2023.03.20 -
[Algorithm Part 1] 2. Analysis of algorithms
이번 글에서는 알고리즘 분석(=실행 시간 및 메모리 사용량 예측)에 대해 살펴볼 것이다. 알고리즘 분석을 하는 대표적인 이유는 "알고리즘 성능을 예측하여, 클라이언트에게 확신을 주기 위함"이다. "Scienific method"을 사용해 알고리즘을 분석할 것이다. Scienitic method Observe: 프로그램 실행 시간(=event)의 특징(=feature)을 관찰한다. (computer = natural world) Hypothesize: 실행 시간(=data)과 일치하는(or 비슷한) 가설을 설계(=modeling)한다. Predict: 가설을 사용해, (입력값이 다른) 프로그램 실행 시간(=another event)을 예측한다. Verify: 더 많은 events을 예측해본다. Valida..
2023.03.16 -
[Algorithm Part 1] 1. Union-Find
이번 글에서는 (dynamic connectivity 알고리즘으로 유명한) Union-Find에 대해 살펴볼 것이다. 더보기 Dynamic Connectivity Dynamic connectivity 문제는 동적 객체(= 관계가 변할 수 있는 객체)들이 주어졌을 때, "두 객체 연결성 판별 문제"다. Union-Find는 객체 간의 연결성 정보를 가지고 있는 동시에, 2가지 연산을 지원하는 ADT다. union: 두 객체 간의 연결성 부여 find: 두 객체 간의 연결성 질의 "연결성 소멸" 연산까지 있으면 보다 좋은 ADT가 될 수 있다. 더보기 What is API? API(Application Programming Interface)는 생성자들과 함수들의 signature와 설명이 있다. What ..
2023.03.13 -
[Paper Review] Language Models are Few-Shot Learners
Abstract 이번 연구에서는, "언어 모델 확장이 모든 task의 few-shot 성능을 크게 향상시킴"을 보여준다. 그 중 몇 가지 task는 이전 state-of-the-art를 능가하는 성능을 보여준다. GPT-3는 parameter 수정 및 fine-tuning을 하지 않고, 오직 텍스트(=입력 토큰)로 제공된 task 설명 및 시연(=예시 지문(or 보기)와 정답)만으로 모든 task를 수행한다. 더보기 Here we show that scaling up language models greatly improves task-agnostic, few-shot performance, sometimes even reaching competitiveness with prior state-of-the-..
2022.10.26 -
[Paper Review] Language Models are Unsupervised Multitask Learners
Abstract 이번 연구에서는, (수백만 개 웹페이지로 이루어진) WebText로 학습한 언어 모델이 지도 학습 없이 여러 가지 테스크(e.g., QA, translation)를 수행할 수 있음을 보여준다. 모델 크기가 증가할수록 여러 테스크 성능이 덩달아 향상되기에, 모델 크기는 zero-shot task transfer의 핵심 요소라 할 수 있다. 이러한 실험 결과들을 통해, 자연어 테스크 설명(=입력 토큰)으로 테스크를 학습하여 수행하는 language processing systems을 만듬으로써, 새로운 방향성을 제시한다. 더보기 We demonstrate that language models begin to learn these tasks without any explicit supervis..
2022.10.07