본문 바로가기

Computer Science72

[CS] 1장 디자인 패턴과 프로그래밍 패러다임 - 1 면접을 위한 CS 전공지식 노트(길벗, 주홍철)1.1 디자인 패턴💡 디자인 패턴이란?      프로그램 설계 시 발생한 문제들을 해결할 수 있도록, 하나의 '규약' 형태로 만들어 놓은 것.class, object, instanceclass: 설계도, 틀object: 구현할 대상instance: 실제로 구현된 구체적인 실체 (1) 싱글톤 패턴: 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴장점1: 인스턴스를 생성할 때 드는 비용 감소.(하나의 인스턴스를 만들어 놓고, 해당 인스턴스를 다른 모듈들이 공유함 사용하기 때문.)단점1: 의존성 증가.해결: 의존성 주입자 추가. → 메인 모듈로부터의 의존성이 떨어지게 됨.의존성 주입의 원칙 - 상위 모듈은 하위 모듈에서 어떤 것도 가져오면 안됨, 추상화에 의.. 2024. 7. 17.
[딥러닝] 10장 컴퓨터 비전, Conv와 멀티모달 학습 10장 컴퓨터 비전, Conv와 멀티모달 학습1. Visual Signals in Computer Vision픽셀 하나하나가 feature뭘 feature로 잡냐!→ ex. color histogram, 선이 어떤 방향으로 있는지에 대한 gradient ... 과정1) 랜덤하게 패치를 뽑고, 비슷한 애들끼리 클러스터해서 codebook만듦.2) 인코딩할 이미지를 codebook 기반으로 feature를 만듦.3) 다양한 방법을 가지고 feature를 만들어서 concat 사람은 눈과 가까운 곳에서는 잘게 잘게 인식하지만, 시신경에서 되로 갈 수록 잘게 잘리 넞ㅇ보를 abstract하게 만들어 버림-> 뇌는 추상화 한다-> Neural Net에 적용하면? -> Convolution!CNN구조로 어떤 tas.. 2024. 6. 15.
[딥러닝] 9장 최근 언어 모델 9장 최근 언어 모델1. Parameter-Efficient Training1. Parameter-Efficient Fine-Tunning (PEFT)main idea: 조금의 파라미터만 업데이트 하자!모든 파라미터를 파인튜닝하는 것은 비실용적!요즘 모델들 파라미터 너무 많음. → 사실 parameter-efficient fine tunning해도 성능 비슷요즘의 AI paradigm은 Efficiency 보다 정확도에만 집중함.그러나 Efficiency도 중요하다!  2. Parameter Efficient Full-Finetunning문제점:GPT-3은 1750억 개의 파라미터를 가지고 있음.너무 많은 비용이 들어!Main idea:원래 가지고 있던 파라미터 |ϕ|를 더 작은 크기의 파라미터인 |Θ|.. 2024. 6. 14.
[웹정보] ch09 Recomeder Systems 2 9.2.1 Netflix Prize 설명training data: 1억개의 평가,  48만명의 사용자, 17,770개의 영화(2000-2005)test data: 각 사용자의 마지막 몇 개의 평가 (280만개)평가 기준: RMSE - 당시 넷플릭스의 RMSE는 0.9514 -> 이것보단 낮아야 함!Utility matrixmovies - users matrix 우승한 BellKor 추천 시스템아래와 같이 multi-scale modeling을 함! * 참고로 Global과 Local이 뭐냐면만약 Joe라는 사람이 다른 사람들 평균에 비해 0.2stars씩 낮춰서주는 경향이 있다고 하자.Global view로 보면,모든 영화에 대한 모든 사람들의 rating 평균은 3.7 starssixth sense 영.. 2024. 6. 13.
[웹정보] ch11. dimensionality reduction 11.0 Intro하나의 행렬은 2개의 행렬의 곱으로 근사화할 수 있음!sparse한 하나의 행렬을 꽉 찬 2개의 행렬의 곱으로 근사화 한다면?→ 실제 행렬이 예측 못한 rating을 잘 예측할 수 있지 않을까! 이게 가능한 이유! → latent factor! 11.1 UV Decomposition❓r은 어떻게 정하지❓    r이 hidden factor의 수일 때 결과가 잘 나온다    ex. r이 장르의 개수일 때 good         m: 사람 x 영화,  u: 사람 x 장르,  v: 장르 x 영화 ❓Error 측정은 어떻게 하지❓    분해가 잘 되냐 안되냐 판단하는 기준: RMSE(Root-Mean-Square-Error) ❓U와 V는 어떻게 찾아내지❓  step1) latent factor.. 2024. 6. 13.
[웹정보] ch07 Clustering 7.1 클러스터링 개요클러스터링 - 비슷한 것끼리 묶는 것.데이터가 쌓였을 때 가장 쉽게 할 수 있는 데이터 분석법. 좋은 클러스터링?내부에서는 가깝고, 클러스터 간은 멀어야 좋음. The Curse of Dimensionality(차원의 저주)대부분 엄청 많은 차원을 사용함.근데 차원이 높아지면 점들 간의 거리가 비슷해짐. 클러스터링 예시SkyCat: 하늘의 천체들을 비슷한 애들끼리 묶음음반 클러스터링: CD를 산 사람들로 CD를 표현함.문서 클러스터링: 문서를 이루는 단어로 문서를 표현함DNA 서열 클러스터링: DNA 서열 간의 편집 거리를 이용해 클러스터링→ 뭔가 distance를 구할 수 있는 방법만 있으면 clustering할 수 있다!vector similarity → cosine distan.. 2024. 6. 11.
[웹정보] ch09 Recomeder Systems 1 9.1 추천 시스템 모델컨텐츠가 엄청 많아져서 "추천"이 필요해짐. Utility function:u = X x S → RX = Customer 집합S = Item 집합R = Rating 집합 Utility matrix - 빈 칸에 어떤 값이 들어갈 지 예측하는 것이 중요! 사용자의 관심 항목을 식별하는 접근 2가지접근1) "known" rating 모으기Explicit: 직접 사람에게 물어본 ratingImplicit: 내재된 행동으로 유추. 웹페이지에 몇번 들어갔나~, 얼마나 머물러 있었나~접근2) known rating으로부터 "unknown" rating 유추하기Utility matrix는 sparse하다!cold start: 새로운 아이템은 rating이 없고, 새로운 사용자는 history가 .. 2024. 6. 10.
[딥러닝] 8장 Generalization과 Evaluation 8장 Generalization과 Evaluation1. Generalization(일반화): 보지 못한 데이터에서도 잘 작동하는 능력!1. 보통 데이터셋을 training:validation:test = 6:2:2로 나눔 2. K-fold Cross Validtaion: 데이터를 무작위로 나누는 것에는 문제가 있어 나온 방법(현재는 사용 x)  매 iteration마다 test set을 바꿔서 실행 3. Overfitting & Underfitting Overfitting: training set을 너무 잘 맞춰서 새로운데이터에 일반화가 잘 안 됨.Underfitting: training set조차 못 맞춤. 4. Shortcut Learning(지름길 학습): 모델이 단순한 패턴을 보고 spuriou.. 2024. 6. 9.
[딥러닝] 7장 Language Model에서 어시스턴트로의 발전(언어모델의 3단계) 7장 Language Model에서 어시스턴트로의 발전(언어모델의 3단계)1. Pretraining: In-context Learning 장점1: 추가 학습 없이, 프롬프트엔지니어링(ex.CoT)으로 성능향상 가능.단점1: 맥락에 담을 정보의 양에 한계가 있음.단점2: 복잡한 task에서는 어느정도 gradient step이 필요.(fine tunning)GPT는 pretrained model!BERT는 수만개의 데이터로, GPT는 few-shot으로 학습하는데 성능 비슷함. Chain-of-thought prompting(사고의 사슬) - ex. 수학 문제 예제를 줄 때 풀이과정도 함께 줌."Let's think step by step"과 갗은 문장을 넣어주니 성능이 더 좋아짐. 2. Instructi.. 2024. 6. 9.
[웹정보] ch06 Association Rules2 Hash-based Filtering: 문제 상황 길이가 10인 문자열로 이루어진 1billion(10^9)개의 문자열 집합 S가 있음. F를 스캔하여 S 안에 있는 문자열을 출력하고 싶음. 메인메모리는 1GB -> 10^8byte S를 메인메모리에 다 올리지 못함 Solution 8billion 비트로 이루어진 비트 배열을 만들고, 모두 0으로 설정. 범위가 [0, 8*10^9)인 해시함수 h를 선택. S의 각 문자열을 해싱에 하나의 비트로 매핑하고, 해당 비트를 1로 설정. File의 문자열에 해당하는 해시 값이 1인 경우에만 출력 문자열 집합 S에는 1billion개의 문자열이 있음. bit array는 8billion 길이임. 비트 배열의 최대 1/8이 "1"임. false positive가 있을.. 2024. 4. 20.