일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Python
- googleapiclient
- PANDAS
- Stack
- SQL
- 파이썬
- kmu
- 운영체제
- machine learning
- 정렬
- gan
- python3
- 머신 러닝
- 국민대
- instaloader
- Seq2Seq
- Regression
- 스택
- 회귀
- Heap
- GIT
- 프로그래머스
- 재귀
- C++
- programmers
- OS
- 데이터베이스
- db
- LSTM
- 국민대학교
- Today
- Total
목록전체 글 (143)
정리 노트
본 글은 버블 정렬에 대해 알고 있다는 가정 하에 작성되었습니다. 버블 정렬을 모르시는 분들은 제가 전에 썼던 글을 보고 오시면 더 편하게 이해하실 수 있습니다. 2022.09.05 - [알고리즘] - 버블 정렬(Bubble sort) 버블 정렬할 때 생기는 문제점 버블 정렬을 할 때 길이가 5인 정수형 배열({5, 4, 3, 2, 1})을 정렬한다고 생각합시다. 5는 1번의 pass로 제 위치로 갈 수 있지만 1은 마지막 pass까지 진행해야 제 위치로 갑니다. 이렇듯 정수형 배열을 정렬할 때 값들이 임의로 섞여있는 경우 큰 값들은 적은 pass를 통해 정렬되지만 작은 값들은 거의 마지막 pass까지 진행해야 합니다. 여기서 크기가 작은 값들을 빠르게 제 위치로 이동시킬 수 있는 칵테일 셰이커 정렬(C..
버블 정렬 버블 정렬은 인접한 두 원소의 크기 비교로 정렬이 진행되는 방법입니다. 여기서의 설명은 오름차순으로 정렬하는 것을 기준으로 진행됩니다. 사실 내림차순 정렬은 비교만 바꾸면 되기 때문에 큰 상관은 없습니다. 기본 버블 정렬 처음부터 끝까지 서로 비교하는 것을 하나의 pass라 부릅시다. 한 번의 pass를 거치면 가장 큰 원소가 오른쪽으로 이동하게 됩니다. 예를 들어 길이가 4인 정수형 배열을 정렬한다고 가정하고, 배열 안의 원소는 random 하게 섞여있다고 합시다. 위처럼 첫 번째 pass가 끝나면 가장 큰 원소인 '4'가 배열의 끝에 위치하게 됩니다. 이와 같은 과정을 반복하면 아래처럼 정렬된 배열을 얻을 수 있습니다. 이를 C++ 코드로 구현하면 아래와 같습니다. #include usin..
이 포스트는 2015년 12월에 나온 Kerion O'shea and Ryan Nash의 'An Introduction to Convolutional Neural Networks'의 일부 내용과 국민대학교X프로그래머스 주관하는 '2022학년도 여름방학 인공지능 온라인 실전 부트캠프'에서 배운 내용을 섞어서 작성했습니다. 잘못된 해석과 개념 오류 지적 등 모든 것을 환영합니다. 1. Introduction Convolutional Neural Networks(CNNs)는 기존의 인공 신경망(ANN)과 유사합니다. 기존의 ANN과 다른 점은 CNN은 주로 이미지 패턴 인식에서 사용된다는 것입니다. 이를 통해 이미지들을 아키텍처로 인코딩을 할 수 있고 CNN이 이미지 작업에 특화될 수 있게 하는 것과 동시에 ..
Seq2Seq with Attention 디코더는 인코더의 모든 출력을 참고합니다. 인코더에서 나온 hidden state 값들을 모두 출력 값으로 별도의 배열 같은 곳에 기록합니다. 디코더에서 매번 hidden state를 갱신할 때 바로 이전의 hidden state값과 인코더의 hidden state값들과 각각 행렬 곱을 수행해서 'energy'라는 값을 생성합니다. 'energy'는 현재 어떤 단어를 출력하기 위해서 source 문장의 어느 단어에 집중해야 하는지 수치화해 표현한 값입니다. energy값에 softmax를 취해 확률 값을 구하고 가중치를 반영해서 가중치 값을 hidden state에 곱한 것을 각각의 비율의 맞게 더해준 weighted sum 벡터를 매번 반영합니다. Transfo..
https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이번 문제는 정확성 테스트와 효율성 테스트가 있는 문제였습니다. 일단 문제를 읽고 처음에 생각난 대로 바로 코드를 작성했더니 정확성은 통과했지만 효율성에서 모두 실패했었습니다. 저의 시도 간단하게 생각했습니다. 각 query에 대해 지원자 정보를 하나씩 비교해보면서 조건에 맞는 지원자의 수를 세는 방법으로 작성했습니다. 작성한 코드는 아래와 같습니다. def solution(info: list, ..
Attention query와 비슷한 값을 가진 key를 찾아 value를 얻는 과정입니다. 여기서 key, value는 encoder의 각 time-step 별 출력(각 source language의 단어 또는 문장)을 의미하고 query는 현재 time-step의 decoder 출력(target language로 번역된 단어 또는 문장)을 의미합니다. 참고: https://hazel01.tistory.com/45 Attention 아키텍처 하나의 Attention은 전체 토큰에 대한 출력을 입력으로 받는 FC의 파라미터를 공유해 사용합니다. 전체 encoder의 출력 + 현재 decoder의 hidden이 decoder의 hidden으로 되고 이게 실제 Attention의 값입니다. import to..
https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 2022 테크 여름 인턴십 코딩 테스트에 나왔던 문제였습니다. 설레는 마음으로 풀었다가... 시간 초과의 벽에 부딪혀 결국 해설을 보았습니다. 해설 https://tech.kakao.com/2022/07/13/2022-coding-test-summer-internship/ 2022 테크 여름인턴십 코딩테스트 해설 2022년 카카오 여름 인턴십 코딩 테스트가 지난 5월 7일에 5시간에 ..
이미지 캡션 생성 이미지를 설명하는 문장을 생성하는 기술 분야로 대표적으로 NIC(Neural Image Caption) 모델을 사용합니다. NIC(Neural Image Caption) 간단히 얘기하면 CNN을 이용해 이미지 특징을 추출한 뒤 RNN을 거쳐 문장을 생성하는 것을 말합니다. 이미지 캡션 생성 문제를 이미지를 번역하는 문제라 볼 수 있습니다. 입력을 이미지(I), 출력을 목표 문장(S = {S1, S2, ..., Sn})이라 하면 가능도(likelihood) P(S | I)를 최대화하는 문제로 정의할 수 있습니다. 이미지 캡션 생성에서는 Encoder가 CNN Encoder를 사용해 CNN 절차를 거치게 만듭니다. 공식