본문 바로가기

분류 전체보기

(323)
7/6(목) IT K-DT(86일차) / 6.Seq2Seq 6. Seq2Seq 6-3. Seq2Seq의 배경 6-3-2. Sqe2Seq 모델 구조 * Seq2Seq는 한 문장을 다른 문장으로 변환하는 모델을 의미. * 가변길이의 입/출력을 처리하기 위해 인코더, 디코더 구조를 채택. * 인코더와 디코더는 모두 여러 개의 LSTM 또는 GRU 셀로 되어있음. * 바닐라 RNN 대신 LSTM과 GRU셀을 사용하는 이유는 LSTM과 GRU 모델이 RNN이 갖는 또다른 한계점인 Long-term dependency를 해결하기 위해서임. 6-3-3. 인코더 * 입력 문장을 컨텍스트 벡터에 인코딩(압축)하는 역할을 함. * 인코더의 LSTM은 입력문장을 단어순서대로 처리하여 고정된 크기의 컨텍스트 벡터를 반환 * 컨텍스트 벡터는 인코더의 마지막 스텝에서 출력된 hidden..
7/5(수) IT 자료구조(15일차) / 14.동적계획법 14. 동적 계획법(Dynamic Programming) + 원리 + 현재 문제의 환경을 알고 있음 + 문제를 작은 문제들로 분할 + 작은 문제를 다 풀면 큰 문제를 해결 가능 + 부분 문제 풀이의 결과를 다음 부분(중복) 문제를 풀 때 사용 + 특징 + 최적 하위구조 : Optimal Substructure\ + 최적의 세부 구조가 있다 + 답을 구하기 위해 했던 계산을 반복해야하는 문제의 구조 + 중복 하위문제 : Overlapping Problems + 작은 문제들의 해답이 겹침 + 분할정복 VS 동적 계획법 + 분할 정복 + 문제 풀이의 결과가 독립적 + 동적 계획법 + 문제들의 풀이 결과가 겹친다 + 결과값을 메모리에 저장 -> 캐싱 def fib_naive(n): if n == 0: retur..
7/5(수) IT K-DT(85일차) / 5. 워드 임베딩 시각화~6.Seq2Seq 5. 워드 임베딩 시각화 5-1. 네이버 영화리뷰 데이터셋 총 200,000개 리뷰로 구성된 데이터로, 영화 리뷰를 긍/부정으로 분류하기 위해 만들어진 데이터셋. 리뷰가 긍정인 경우 1, 부정인 경우 0으로 표시한 레이블로 구성되어있음. # 한글 글꼴 적용 !sudo apt-get install -y fonts-nanum !sudo fc-cache -fv !rm ~/.cache/matplotlib -rf # train set/test set 불러오기 * train set https://raw.githubusercontent.com/e9t/nsmc/master/ratings_train.txt * test set https://raw.githubusercontent.com/e9t/nsmc/master/rat..
7/4(화) IT 자료구조(14일차) / 13. 특수 정렬 알고리즘 13. 특수 정렬 알고리즘 특수 정렬 알고리즘은 일반적인 정렬 알고리즘과는 다르게 특정한 기준에 따라 요소를 정렬하는 방식을 의미. 보다 특별한 규칙을 따르거나 특정한 요구 사항을 충족시키기 위해 사용되기도 함. 일반적인 정렬 알고리즘을 변형하거나 새로운 정렬 알고리즘을 개발하여 구현할 수 있으며, 특수 정렬 알고리즘의 선택은 주어진 문제나 데이터의 특성에 따라 달라짐. 예를 들어, 버블 정렬의 변형인 '개선된 버블 정렬'은 최솟값을 맨 끝으로 이동시키는 대신, 최솟값과 최댓값을 번갈아가며 정렬하는 특수 정렬 알고리즘임. 이렇게 하면 정렬된 요소들이 중앙을 기준으로 대칭적으로 배치됨. 또 다른 예로는 짝수와 홀수를 번갈아가며 정렬하는 특수 정렬 알고리즘이 있음. 이 알고리즘은 먼저 짝수 번째 인덱스에 짝..
7/4(화) IT K-DT(84일차) / 4. 워드 임베딩(word embedding) (2) 4. 워드 임베딩(Word Embedding) 4-4. 워드 임베딩 구축하기 import pandas as pd import numpy as np from sklearn.datasets import fetch_20newsgroups # 20newsgroups라는 데이터셋을 활용할 예정 dataset = fetch_20newsgroups(shuffle=True, random_state=10, remove=('headers', 'footers', 'quotes')) # header, footer, quote를 삭제하여 정제한 데이터셋을 쓸 예정 dataset # dataset 내부의 data(말뭉치)만 가져올 예정 dataset.data # dataset에 data만 저장할 예정 dataset = datas..
7/3(월) IT 자료구조(13일차) / 12. 고급 정렬 알고리즘 12. 고급 정렬 알고리즘 고급 정렬 알고리즘은 효율적으로 데이터를 정렬하기 위해 개발된 알고리즘. 이러한 알고리즘들은 일반적으로 일반적인 정렬 알고리즘인 버블 정렬이나 삽입 정렬보다 더 효율적인 성능을 제공함. 분할 정복(Divide and Conquer): 큰 문제를 작은 하위 문제로 분할하고, 각 하위 문제를 재귀적으로 해결한 다음, 그 결과를 결합하여 원래 문제의 해답을 얻는 알고리즘 설계 기법. 주요 아이디어: 1) 분할(Divide): 원래 문제를 작은 부분 문제로 분할. 문제를 반으로 쪼개는 것이 일반적이지만, 경우에 따라 다른 방식으로 분할할 수도 있음. 2) 정복(Conquer): 각 하위 문제를 재귀적으로 해결. 하위 문제가 충분히 작아서 직접 해결할 수 있는 경우에는 재귀 호출을 중단..
7/3(월) IT K-DT(83일차) / 4. 워드 임베딩(word embedding) (1) 4. 워드 임베딩(Word Embedding) 4-1. 워드 임베딩(Word Embedding) * 단어를 컴퓨터가 이해하고, 효율적으로 처리할 수 있도록 단어를 벡터화하는 기술. * 단어를 밀집 벡터(dense vector)의 형태로 표현하는 방법 * 워드 임베딩 과정을 통해 나온 결과를 임베딩 벡터라고 말함. * 워드 임베딩을 거쳐 잘 표현된 단어 벡터들은 계산이 가능하며, 모델에 입력으로 사용할 수 있음. 4-1-1. 인코딩(Encoding) * 기계는 자연어를 이해할 수 없기 때문에 데이터를 기계가 이해할 수 있도록 숫자 등으로 변환해주는 작업. 4-1-2. 희소 표현(Sparse Representation) * 원핫인코딩을 통해 나온 원핫벡터들은 표현하고자 하는 단어의 인덱스의 값만 1이고 나머..
3/17(금) IT K-DT(12일차) / (비NCS) 파이썬 웹 개발1 평가 문제 문제 아래 내용을 참고하여 프로그램 작성 후 업로드하세요. 내용 전화번호부 프로그램을 만드려고 합니다. 아래 조건을 만족하는 프로그램을 작성하세요. 1. 이름, 전화번호, 주소, 이메일, 그룹을 입력받아 저장합니다. (10점) 2. 입력받은 이름, 전화번호, 주소, 이메일, 그룹을 출력합니다. (5점) 3. 이름, 전화번호 일부, 이메일, 그룹 등으로 전화번호를 검색할 수 있습니다. (10점) 4. 전화번호를 삭제할 수 있습니다. (5점) 5. 저장된 전화번호를 파일에 저장합니다. (10점) 6. 프로그램 종료 후 재실행 할 때 저장된 전화번호를 불러옵니다. (10점) 7. 전화번호 출력시 이름순으로 오름차순 정렬합니다. (10점) 8. 중복된 전화번호는 저장할 수 없습니다. (10점) 9. 적절한..