목록전체 글 (57)
열심히 코딩 하숭!
프로그래머스 알고리즘 고득점 kit 문제 풀이 스터디 2주차!스택/큐 문제를 풀기 전에 개념정리를 하려고 한다. 스택 큐는 학교 프로그래밍(C++) 수업 때 배웠고 익숙하지만python으로 코드를 짜려고 하니 헷갈려서 간단하게 정리를 하게 되었다! 스택LIFO (Last In First Out) 가장 먼저 들어온 데이터가 가장 나중에 나간다top을 통해서만 push 또는 pop이 가능하다. python에서 스택 구현python의 append() 함수를 사용해 pushpop() 함수를 사용해 pop을 진행한다.단순하고 바로 이해된다. 모든 함수들의 계산 복잡도도 O(1)로 효율적이다더보기class Stack: def __init__(self): self.stack = [] def p..
해시테이블이란?특정 키를 빠르게 검색, 삽입, 삭제할 수 있도록 설계된 자료구조(key값을 일일히 하나씩 비교하며 value를 찾지 않고, 해시함수를 사용해 바로 인덱스를 찾아가기 때문에 빠르다!)충돌되었을 땐, 해시테이블에 키도 저장되어있어야 충돌 문제 해결을 할 수 있음!그래서 보통 해시테이블에는 key와 value가 함께 저장되어있음(이해가 되지 않는다면 아래에 나오는 충돌 문제 부분과 궁금증 부분을 확인하면 된다.) 용어해시 함수(hash function): 입력된 키를 해시값으로 변환하여 배열의 인덱스로 변환하는 함수해시 테이블(hash table): 해시값을 인덱스로 하여, 실제 데이터를 저장하는 배열 기본적인 동작 과정1. 저장할 키가 주어지면, 이를 해시 함수에 넣어 해시 값을 계산2. 계..
You Only Look Once: Unified, Real-Time Object Detection(2015)You Only Look Once: Unified, Real-Time Object Detection You Only Look Once: Unified, Real-Time Object DetectionWe present YOLO, a new approach to object detection. Prior work on object detection repurposes classifiers to perform detection. Instead, we frame object detection as a regression problem to spatially separated bounding boxes ..
12 사용자 정의 데이터를 활용한 이미지 분류12.1 문제 정의하기개미와 벌 분류 문제훈련 데이터 244개검증 데이터 153개JPEG 형식다중 분류로 진행시베리안 허스키와 늑대 분류 문제훈련 데이터 40건검증 데이터 10건12.3 데이터 준비데이터 다운로드, 압축 해제, 트리 구조 출력파이썬 함수 말고 리눅스 커맨드를 사용!다운로드: wget압축 해제: unzip트리 구조 출력: treetree 커맨드의 경우 (구글 코랩에 기반하는 OS에 포함되어 있지 않으므로) 일단 apt 커맨드를 통해 tree 커맨드를 도입한 다음 사용한다tree 커맨드 install!pip install torchviz | tail -n 1!pip install torchviz | tail -n 1 w = !apt install ..
11 사전 학습 모델 활용하기11.2 사전 학습 모델사전 학습 모델실제 실무에서는 학습을 밑바닥부터 시작하는 경우는 오히려 드물다미리 학습이 되어있는 사전 학습 모델을 활용하여 정확도가 더욱 높은 모델을 만든다파이토치에서 이미지 분류 모델로 사용 가능한 사전 학습 모델아래의 모델들은 모두 224 x 224 화소의 이미지 데이터로 학습되었음클래스명: 파이토치에서 실제 모델을 읽어올 때 사용하는 클래스명Top-1 에러: ILSVRC에서 과제를 위해 공개한 ImageNet이라는 1000개의 클래스를 분류하는 문제에서 검증에 대한 에러 비율Top-5에러: 정답이 모델의 예측 결과의 Top-5 안에 들지 못한 비율 사전 학습 모델 호출 예시from torchvision import modelsnet = model..
10 튜닝 기법 10.1 이 장의 중요 개념 이미지 대상 딥러닝 분류 모델의 튜닝 기법 (1) 신경망의 다층화 (2) 최적화 함수를 개선 (3) 과학습에 관한 대책 10.3 최적화 함수 최적화 함수 손실의 경사 값을 기반으로 어떤 알고리즘을 통해 파라미터를 수정해 나갈 것인지 SGD Stochastic Gradient Descent 경사에 일정한 학습률을 곱해서 파라미터를 수정해 나가는 방식 lr = 0.001 # 학습률 w -= lr * W.grad B -= lr * B.grad Momentum SGD 알고리즘을 개선하기 위해 나온 방법 모멘텀 인수를 설정하여, 과거에 계산했던 경사 값을 기억했다가, 그만큼 파라미터를 일정 비율 감소시킴 (SGD의 경우 현재 경사 값만 반영함) optimizer = o..
python으로 데이터를 처리하고 작업하면서 맨날 헷갈려서 찾아보는 코드들! (내 기준) CSV 불러오기 df = pd.read_csv("df.csv", encoding="cp949") Column data type 변환 df['습도'] = df['습도'].astype(float) Column drop df.drop('습도', inplace=True , axis=1) df.drop(['습도', '강수량'], inplace=True , axis=1) null인 행만 제거 df = df.dropna(subset=['메인1']) 0으로 결측치 채우기 df = df.fillna(0) 날짜 처리 - datetime df['날짜'] = pd.to_datetime(df['날짜'], format='mixed') df[..
09 CNN을 활용한 이미지 인식 9.1 문제 정의 CIFAR-10 32 x 32 화소의 컬러 이미지 데이터 이미지를 학습하여 해당하는 이미지의 카테고리를 예측 컬러이므로 → (3, 32, 32) 🌟채널🌟 이미지 → ‘색, 가로, 세로’의 3계 텐서의 구조를 유지 (여기에서 ‘색’이 채널!) RGB라면 채널은 3 흑백 등 단일 색상일 경우 채널은 1 두번째 층 이후에서는 ‘색’에 해당하는 인덱스는 더 이상 색의 의미를 갖지 않게 된다 ⇒ 학습하면서 다른 특징에 초점을 맞출 수 있기 때문 이렇게 깊이에 해당하는 인덱스는 ‘채널’이라고 불림 📌 채널이 4개 이상일 경우? → 다중 모달 데이터 (자연어처리) → 시간 차원 (비디오) → 3D 이미지 → 특징 추출: 일부 심층 학습 아키텍처에서는 채널 수를 증가..
08 MNIST를 활용한 숫자 인식 8.1 문제 정의 MNIST 데이터 손글씨 데이터 가로 세로 28 x 28 (pixel) 색의 농도는 0 ~ 225까지 데이터 사용 이미지 한 장은 [1, 28, 28] 형태로 구성되어있음 (맨 처음 1은 이미지의 색을 의미하는 채널의 차원수 - 그니까 2차원의 데이터인데 색이 붙어서 3차원…!!!이 된!!!) 이번 장에서는 1계 텐서 형식으로 입력 데이터를 변환하여 사용 이미지 한 장 → 784개(28 X 28)의 요소를 1차원 배열로 전개 class 0 ~ 9까지의 숫자를 분류 → 총 10개의 class 8.2-8.3 중요 개념 / 신경망과 딥러닝 pass 8.4 활성화 함수와 ReLU 함수 ReLU 함수 x
04 예측 함수 정의하기 4.1 머신러닝 알고리의 전체상과 예측함수 경사 하강법의 구현 개요 예측 계산 → 손실 계산 → 경사 계산 → 파라미터 수정 예측 계산: 입력으로부터 출력을 계산함l 손실 계산: 정답과 출력간의 오차를 계산함 경사 계산: 손실 함수를 미분하여 경사값을 구함 파라미터 수정: 경사값을 활용해 손실을 최소화시키는 W와 B를 반복 수정함 예측 함수 구성 레이어 함수 여러 층을 조합해서 예측 함수를 구성한다 레이어 함수: 선형 함수, ReLU 함수 등 4.2 신경망의 개념과 파이토치 프로그래밍 모델의 관계 신경망과 파이토치 프로그램의 대응 관계 💡 헷갈리는 부분: 선형 함수의 자리와 비선형 함수의 자리가 고정되어야 하는지? 선형 함수 자리에는 무조건 선형 함수만 와야하나!!? 아니다! 컨..