본문 바로가기

전체 글85

[Coding Test][Python] Stack 개념, Stack 구현 및 예제 ※ Stack 이란?데이터를 선형으로 저장하는 자료 구조로 LIFO(Last In, First Out) 구조를 가진다.Stack 주요 연산Push : Stack의 맨 위(Top)에 데이터 삽입Pop : Stack의 맨 위(Top)에 있는 데이터 제거하고 returnTop : Stack의 맨 위(Top)에 있는 데이터를 조회Stack 활용 사례재귀 함수 처리괄호 매칭DFS문자열 뒤집기등등1. Stack 구현Stack은 Python에 특별한 라이브러리가 존재하지 않고 List를 Stack으로 사용한다.아래 코드에서는 Stack Class를 정의하여 사용하였지만 바로 List에 적용하면 된다.class Stack(object): def __init__(self): self.list = [].. 2025. 1. 15.
[Coding Test][Python] Queue 정리 및 List Based Queue 구현 ※ Queue란 ?데이터를 선형으로 저장하는 자료구조로, FIFO(First In, First Out) 방식으로 작동한다.주요 Method로는 Enqeue(데이터를 Queue의 뒤쪽에 추가), Dequeue(데이터를 Queue 앞에서 제거)가 있다.1. Python Method 사용법append(x=)q = deque()q.append(1)q.append(2)q.append(3)q.append(4)q deque([1, 2, 3, 4]) appendleft(x=)q = deque()q.appendleft(1)q.appendleft(2)q.appendleft(3)q.appendleft(4)q deque([4, 3, 2, 1]) extend(iterable=)기존 Queue에 다른 Iterable 한 객체의 .. 2025. 1. 15.
[Coding Test][Python] List 정리 및 Linked List 구현 1. Python Method 사용법append(object=)li = [1,2,3]li.append(1)li [1, 2, 3, 1] clear()li = [1,2,3]li.clear()li [] copy()li = [1,2,3]# Deepcopyli2 = li.copy()print(li2)li[1] = 1print(li2)[1, 2, 3, 1] count(value=)value가 없어도 Error가 나지 않는다li = [1,2,2,3]print(li.count(2))print(li.count(4)) 2 0 extend(iterable=)기존 List에 다른 Iterable 한 객체의 원소를 이어붙인다li = [1,2,3] li2 = [1,2,3]# 원본 리스트를 수정하고 새로운 list를 반환하지.. 2025. 1. 14.
[DL][CNN]전이학습의 미세조정 기법(Fine - Tuning) 개념 및 PyTorch 예제 앞선 글에서 Transfer Learning의 개념과 Transfer Learning의 한 종류인 Feature Extraction에 대해 알아보았습니다.이제 Transfer Learning의 또 다른 기법인 Fine - Tuning에 대해 알아보겠습니다. 전이학습(Transfer Learning) 및 특성추출(Feature Extraction) 정리 ,CNN(resnet18) PyTorch 예제1. 전이 학습(Transfer Learning)이란?일반적으로 CNN 기반의 딥러닝 모델을 제대로 훈련시키려면 많은 양의 데이터가 필요하다. 하지만 큰 데이터셋을 얻는 것은 현실적으로 어렵기 때문에 아주 큰 데self-objectification.tistory.com1. 미세 조정 기법(Fine - Tuning.. 2025. 1. 14.
[DL][CNN]전이학습(Transfer Learning) 및 특성추출(Feature Extraction) 정리 ,CNN(resnet18) PyTorch 예제 1. 전이 학습(Transfer Learning)이란?일반적으로 CNN 기반의 딥러닝 모델을 제대로 훈련시키려면 많은 양의 데이터가 필요하다. 하지만 큰 데이터셋을 얻는 것은 현실적으로 어렵기 때문에 아주 큰 데이터 셋을 써서 훈련된 모델의 Parameter를 가져와 해결하려는 과제에 맞게 보정해서 사용하는 *Transfer Learning*을 진행하여 현실적인 어려움을 해결한다. 이 때 아주 큰 데이터셋을 사용하여 훈련된 모델을 Pre-trained model이라 부른다.전이 학습을 위한 방법으로는 특성 추출(Feature Extraction)과 미세 조정(Fine - Tuning) 기법이 있다. 2. 특성 추출 기법(Feature Extraction)이란?ImageNet 데이터셋으로 Pre.. 2025. 1. 14.
[Recommendation System] 메타코드M "Kaggle 데이터를 활용한 개인화 추천시스템" (ML/DL) 이번 글은 메타코드 M의 "Kaggle 데이터를 활용한 개인화 추천시스템 100% 실습 강의 | 우아한 형제들, 현대카드 출신 Data Scientist 현직자 강의 " 강의에 대한 후기를 작성해보려고 합니다 ! 이 강의는 Python의 Numpy, Pandas, Matplotlib, Seaborn, Scikit-learn, Keras에 대해 선행지식을 가지고 있어야 하니 관심 있으신 분들은 따로 공부하시거나 메타코드에 다양한 강의가 있으니 먼저 수강하시는 것을 추천드립니다.1. 강의 수강 계기메타코드 M을 알게된 것은 2년전 쯤 우연히 유튜브 강의를 통해서 알게 되었고, 그 강의는 "머신러닝 강의 1,2,3강 - [국내 Top AI대학원 박사] " 였고, 유튜브에 장편으로 Machine Learning.. 2024. 12. 4.
[DL][NLP]Transformer 모델 1. 기존 Seq2Seq 모델의 한계기존의 Seq2Seq 모델은 Encoder-Decoder 구조로 구성되어있다. 여기서 Encoder는 Input Sequence를 하나의 벡터 표현으로 압축하고, Decoder는 이 벡터 표현을 통해 Output Sequence를 만들어내었다. 하지만 이러한 구조는 Encoder가 입력 시퀀스를 하나의 벡터로 압축하는 과정에서 입력 시퀀스의 정보가 일부 손실된다는 단점이 있었고, 이를 보정하기 위해 Attention이 사용되었다 그런데 Attention을 RNN의 보정을 위한 용도로서 사용하는 것이 아니라 Attention만으로 Encoder와 Decoder를 만들어보면 어떨까라는 Idea를 통해 Transformer가 탄생되었다.2. Trans.. 2024. 10. 29.
[DL][NLP] Transformer Encoder 동작 과정(Multi Head Self Attention, Position-wise Feed Forward Neural Network(FFNN)) 1. Encoder의 Self-AttentionSelf - Atention의 의미Attention Function은 주어진 "Query"에 대해서 모든 "Key"와의 유사도를 각각 구하고, 이 유사도를 가중치로 하여 Key와 Mapping 되어 있는 각각의 "Value"에 반영하는 합수이다. 그리고 유사도가 반영된 "Value"를 모두 가중합하여 Attention Value를 구한다. 앞서 Seq2Seq에서 Attention을 사용할 경우 Query, Key, Value는 아래와 같았다. t 시점이라는 것은 계속 변화하면서 반복적으로 Query를 수행하므로 전체 시점에 대해서도 일반화할 수 있다 Q : t 시점의 Decoder Cell에서의 hidden State -> 모든 시점의 Decoder .. 2024. 10. 29.
[DL][NLP] Attention Mechanism(어텐션 메커니즘) 1. Attention Mechanism 등장 배경Seq2Seq 모델은 Encoder에서 Input Sequence를 Context Vector라는 하나의 고정된 크기의 벡터 표현으로 압축하고, Decoder는 이 Context Vector를 통해 Output Sequence를 만들어낸다. 하지만 이러한 RNN에 기반한 Seq2Seq 모델에는 크게 두 가지 문제가 있다.하나의 고정된 크기의 벡터에 모든 정보를 압축하려고 하니 정보 손실이 발생RNN의 고질적인 문제인 Vanishing Gradient 문제결국 기계 번역 분야에서 입력 문장이 길어지면 성능이 떨어지는 현상이 나타났고, 이를 위한 대안으로 Input Sequence가 길어지면 출력 Sequence의 정확도가 떨어지는 것을 보정해주기 .. 2024. 10. 28.