전체 글
-
(백준) 7576: 토마토CS/Algorithm 2025. 1. 3. 15:50
인접한 토마토들이 익는다고 하였으므로 BFS로 간단하게 해결 할 수 있다. https://www.acmicpc.net/problem/7576 from collections import dequem,n = map(int,input().split()) #n은 가로이지만 배열에서는 세로가 되고 m은 세로이지만 배열에서 가로가 된다box = []queue = deque()#토마토 입력for i in range(n): row = list(map(int,input().split())) for j in range(m): #토마토가 있는지 체크 if row[j] == 1: queue.append((i,j)) box.append(row)# 상하좌우 이동을 위한 방향 벡터dx = [0, 0, -1..
-
(CS231n)Lecture 3: Loss Functions and OptimizationCS/ML&DL 2025. 1. 2. 21:22
이번 강의에서는 손실함수와 손실함수를 최적화하는 방법에 대해서 다룬다이미지 선형 분류의 경우 가중치 W를 업데이트 해야한다.y = Wx + b 의 형태로 선형 분류가 구성되어 있을때 가중치 W 값의 갱신은 손실함수를 통해서 이루어질 수 있다. 손실함수손실함수는 모델이 출력한 예측값과 실제값의 차이를 의미하며 여러가지 형태가 존재한다.우선 강의에서는 SVM 손실함수에 대해서 다룬다.다음과 같이 cat,car,frog 이미지가 있을때 SVM loss를 통해서 손실값을 구하면max(0, 예측값 - 정답레이블의 예측값 +1)의 형태로 구성된다.예를 들어, 고양이 사진에서는 5.1(car)-3.2(cat)+1 = 2.9 그리고 -1.7-3.2+1 에 대해 즉, frog에 대한 cat의 loss를 구하면 0이 된다..
-
(백준) 1012번 유기농 배추CS/Algorithm 2025. 1. 2. 13:46
https://www.acmicpc.net/problem/1012 이 문제는 구역 구하기 문제로 dfs로 쉽게 구현 할 수 있는 문제이다. DFSDFS는 깊이 우선 탐색으로 이름만 들으면 아래로 깊이 있게 내려간다는 건가라고 생각할 수 있지만, 그게 아니라 한쪽 방향으로 끈질기게 계속 파고 들어가는 탐색 방식을 말한다.즉, 상,하,좌,우가 있을때 위로 이동했으면 또 다시 상,하,좌,우를 탐색하고 끝이 있을 때까지 쭉 이동하는 방식인 것이다.만약 끝이 보일 경우 다시 이전단계로 돌아와서 다음 가능한 여부를 파악한다.BFS는 그저 인접한 노드로만 이동하기 때문에 그 점에서 차이가 존재한다. 또한 DFS는 스택으로 구현하지만, 재귀함수를 사용한다면 더 간단하게 구현할 수 있다. 그래서 굳이 스택을 사용하지 않..
-
(cs231n) Assignment 1CS/ML&DL 2025. 1. 2. 01:41
첫번째 과제는 KNN을 구현하는 것이다. KNN은 train과 test 두가지로 구분할 수 있다.train 과정에서는 단순히 모든 이미지들을 기억한다.이후 test 단계에서는 새로들어온 이미지를 기억한 모든 이미지들을 비교하가면서 distance(픽셀간 거리차)가 가장 작은 이미지를 출력하는 방식으로 동작한다.허나, 이 방식은 매우 비효율적이므로 쓰이지 않는다.단순해서 구현하기 쉽지만 훈련이 오래걸리고 인퍼런스는 짧아야하는데 그 반대이며, 예측 성능도 별로여서 쓰이지 않는다. 우선 과제에서 제시하는 train이 어떻게 동작하는지 살펴본다. train def train(self, X, y): """ Train the classifier. For k-nearest neighbo..
-
쿠키와 세션CS/Cyber Security 2024. 12. 31. 21:47
Header웹 서버는 사용자를 HTTP의 Header 정보를 통해 일반 사용자인지, 관리자인지를 구분할 수 있다.Header정보에는 쿠키와 세션 정보를 가질수 있는데 이 정보들을 기반으로 사용자를 구분지을 수 있다. Cookiehttp 프로토콜은 stateless(통신이 끝난후 상태를 저장하지 않음), Connectionless(한가지 요청을 처리하면 연결을 끊음) 이 두가지 특징을 가지고 있기 때문에 서버에 접속한 클라이언트를 기억할 수 없다는 특징이 있다.이러한 문제점을 해결하기 위해 등장한 것이 cookie이다. cookie는 key와 value로 이루어져 있으며 서버가 클라이언트에게 발급해준다.이렇게 발급받은 cookie를 클라이언트는 요청이 생길때마다 서버에 같이 전송하고 서버는 이 cookie..
-
Chapter 6. SynchronizationCS/Operating System 2024. 12. 12. 22:42
프로세스들이 concurrently or parallel하게 실행될때 동시에 같은 메모리에 접근했을 시의 충돌 방지를 이야기 한다. race conditionProducerwhile (true) {/* produce an item in next produced /while (counter == BUFFER_SIZE) ;/ do nothing */buffer[in] = next_produced;in = (in + 1) % BUFFER_SIZE;counter++;}Consumerwhile (true) {while (counter == 0); /* do nothing /next_consumed = buffer[out];out = (out + 1) % BUFFER_SIZE;counter--;/ consume t..
-
(MmDetection) VisionTransfomer 백본으로 학습해보기Mmdetection 2024. 10. 22. 22:31
이번시간에는 VisionTransfomer (VIT) 백본을 사용하여 학습하는 방법에 대해서 알아볼 것이다.즉, 모델은 faster-rcnn을 사용하지만 백본은 VIT을 사용할 것이다. 우선, VisionTransfomer는 mmdetection에서 기본으로 존재하는 백본이 아니다.(Projects 폴더에 보면 visiontransfomer 백본 파일이 있긴 하지만 아직은 사용되는 것 같지가 않았다.)그래서 mmpretrain에서 pretrained 된 VIT 백본을 다운받아서 해당 백본을 활용한다. https://mmpretrain.readthedocs.io/en/latest/papers/vision_transformer.html위 링크에서 여러 vit 백본들을 소개한다.여기서 vit-base-p16_..
-
(MmDetection) 훈련 성능 지표 확인하는 법Mmdetection 2024. 10. 18. 21:27
mmdetection에서는 훈련시 남긴 로그를 바탕으로 분석할 수 있는 툴을 제공한다.이번시간에는 간단하게 에포크 별로 loss_cls와 loss_bbox 값을 확인해보도록 한다. 성능지표:훈련준 확인할 수 있는 대표적인 성능 지표는 다음과 같다.loss_cls, loss_bbox: 객체탐지 모델에서 발생하는 손실함수로 이를 최소화 시키는 것이 우리의 목표라고 할 수 있다.loss_cls는 인식한 객체를 잘못 인식한 경우(예를 들어서 자동차를 비행기로 인식했는지, 사과를 바나나라고 인식했는가에 대한 지표)를 나태내며 loss_bbox는: 모델이 예측한 객체의 경계 상자(bounding box)가 실제 경계 상자와 얼마나 일치하는지를 나타내는 지표이다. IoU(Intersection over Union) ..