전체 글

카테고리 없음

For CS101 students.

from cs1robots import * create_world load_world("") hubo = Robot(beepers = n) hubo = Robot(orientation='W', avenue=7, street=5) hubo.set_trace("blue") hubo.facing_north() hubo. move() hubo. turn_left() hubo.drop_beeper() hubo.pick_beeper() hubo.on_beeper() hubo.carries_beepers() hubo.front_is_clear() hubo.left_is_clear() hubo.right_is_clear() hubo.get_pos() //////////////////////////////////////..

인공지능

Depthwise Seperable Convolution와 FLOPs에 대하여..

일반적인 Convolution 연산은 기존 FC layer보다 다음과 같은 장점이 있었다.지역적인 범위를 계속 하나의 실수 값으로 압축하여, 결과 Tensor에 위치 정보가 유지되게끔 해준다."지역적인" 범위에 대하여 연산을 하기에 기존 FC Layer보다 연산량의 우위를 가진다. (결과 Tensor의 한 정점을 계산하는 데 사용되는 연산량이 더 적음) FLOPs : FLoating point OPerationsConvolution 연산의 연산량을 알아보기에 앞서, 연산량의 기준으로 FLOPs를 소개하고자 한다. FLOPs는 사칙연산, log, exponent, sqrt 등의 연산을 한 번씩 할 때마다 1 FLOPs라고 본다. 이와 비슷하게 FLOPS가 있는데, 이는 FLoating Point OPera..

수학

선적분이란?

선적분이란 곡선에 대한 적분을 의미한다. 어떤 n차원의 선에 있는 모든 점에 대해 적분을 하는 것이다. 어떤 함수 f : R^n -> R이 있고, 곡선 C가 X : {x | x in [a,b] in R} -> R^n이다. 이때, 곡선 C는 "조각"적으로 "미분가능"하게 "매개화" 가능할 때, 선적분은 $ \int_C f = \int_a^b {f( \overrightarrow{X} (r) ) \left\| \overrightarrow{X}'(r) \right\| \mathrm{dr}}$ 와 같이 정의된다. 바로 보이는 $ \left\| \overrightarrow{X}'(r) \right\| $ 부분이 눈길을 사로잡는다. 이는 1학년 2학기때 배운 비오-사바르 법칙을 공부할때 했던 내용과 거의 동일하다. ..

C | C++ 알고리즘 & 자료구조

[boj 8878] Hey, Better Bettor

Boj 8878, Hey, Better Bettor 이 문제를 해석해보자면 먼저, 나는 도박을 하는 중이고, 0$를 가지고 있다. 이때, 내가 도박에서 이기면 1$를 얻고, 지면 1$를 잃는다. 이길 확률은 p (0 정지 => 단조 감소 그래프를 그리므로 Pred(A,B)에 비해 Pred(A+1,B)가 증가하면 계속 탐색, Pred(A+1,B)가 감소하면 탐색을 멈춘다. 이때, 엄청나게 정밀한 부동소수점 연산이 요구되기에 최대점 갱신은 그냥 기존의 부등식 연산을 사용하고, 단조 증가, 단조 감소 판별은 Epsilon을 정의하여 사용한다. ("최대점보다 Epsilon만큼 작으면 단조감소이다."와 같은 식으로 사용함) 이때, Epsilon은 크면 클수록 탐색을 더 진행한다는 뜻이 되므로 시간초과가 나게 하지..

인공지능

YOLOv1 (You Only Look Once v1) 모델 이해해보기

Yolo v1 모델은, Image Segmentation, 그중에서도 Object Detection 분야에서 아주 유명한 모델이다. 오늘은 현재 Real-Time Object Detection on COCO 에서 SOTA를 차지하고 있는 YOLOv6, YOLOv7 모델 등의 기초 뼈대라고 할 수 있는 YOLOv1 모델의 작동 원리를 알아보도록 하겠다. 들어가기 전에 설명하면서 사용할 용어들에 대해 정리해보도록 하겠다. IOU : "곱집합 / 합집합"으로, 모델이 예측한 Bounding Box가 실제 물체를 얼마나 잘 나타냈는지 평가할 때 사용한다. 그래서 IOU가 threshold 이상이면, 그 Bounding Box는 아래에서 서술할 TP가 되는 것이다. (있는 물체를 정확히 맞춘 것) 모델을 평가하는..

C | C++ 알고리즘 & 자료구조

boj 13728 행렬식과 GCD C++ 풀이

백준 플레 4에 해당하는 행렬식과 GCD 문제이다. 이 문제의 설명을 간단히 해보자면, M이라는 행렬이 위와 같이 정의된다고 할때, D(i) = det(M_i*i) 로 정의된다. 즉, 크기가 i*i인 M의 행렬식인즉, D(i)가 된다. 그 이후, S = sum(gcd(D(i), D(N)) ( 1

인공지능

U-Net 모델 이해해보기

Segmentation은 이미지 내부의 물체들을 분할하는 작업을 의미한다. 보통 Image Segmentation은 각 픽셀에 모두 클래스를 할당하는 Task로 정의한다. 이전에, CNN에서는 이미지 자체를 클래스로 분류한 것에 비해 차이점이 보일 것이다. 이를 어떻게 구현할 수 있을까? 먼저, 물체라는 것은 이미지 내부의 어떤 특성이다. CNN 모델이 이미지에서 각 물체에 attention하게끔 학습을 해주면 될 것이다. 이를 보통 encoder 구조라고 부른다. 그 이후에는 특징 맵에서 각 물체가 어디에 위치해있는지를 알아냈으니, 이를 원본 이미지에 덧씌우는 일을 해주면 된다. 이는 마치 우리 뇌에 아주 대략적인 구상도(특징 맵)를 가지고, 앞에 보이는 풍경을 그리는 과정과도 비슷하다. 뇌의 정보만으..

ddddewang
디디디대왕의 IT Story