Geometric transformation(기하학적 변환)은 Coordinate transformation(좌표 변환)과 Intensity interpolation(강도 보간)으로 구성된다. 좌표 변환(Coordinate transformation)은 입력 이미지의 픽셀이 출력 이미지에서 어디에 위치할지를 결정하는 과정이다. 이는 이미지의 회전, 이동, 크기 조절, 기울임 등과 같은 공간적 변형을 포함한다. 강도 보간(Intensity interpolation)은 변환된 좌표에서 픽셀의 실제 값을 결정하는 과정이다. 변환된 좌표가 정수가 아닌 실수 값을 가질 수 있으므로, 주변 픽셀들의 값을 이용하여 새로운 픽셀 값을 계산해야 한다. 이때 nearest neighbor, bilinear, bicubic..
Bilinear Interpolation (이중 선형 보간법)주변 4개의 픽셀값을 이용하여 새로운 픽셀값을 계산한다.과정:x축 방향으로 1차 함수 연산 2번 수행y축 방향으로 1차 함수 연산 1번 수행총 3번의 선형 연산으로 새로운 픽셀값 도출장점: 계산이 비교적 단순하고 빠름단점: 이미지가 다소 부드럽게(blurry) 표현될 수 있음 Bicubic Interpolation (이중 3차 보간법)주변 16개의 픽셀값을 이용하여 새로운 픽셀값을 계산과정:x축 방향으로 3차 함수 연산 4번 수행y축 방향으로 3차 함수 연산 1번 수행총 5번의 3차 함수 연산으로 새로운 픽셀값 도출장점: Bilinear보다 더 선명한 이미지 품질단점: 계산량이 더 많아 처리 시간이 더 걸림 샘플링과 Aliasing나..
VLIWvery long instruction word architecture으로 컴파일러가 독립적인 명령어들을 찾아 하나의 VLIW 명령어로 묶는다. 장점:하드웨어 구조가 단순화된다.단점:컴파일러가 매 사이클마다 N개의 독립적인 명령어를 찾아야 한다.독립적인 명령어가 부족할 경우 nop으로 채운다.실행 명령어 개수 변경 시 재컴파일이 필요하다.stall 발생 시 여러 명령어를 동시에 stall 한다.이 아키텍처는 컴파일러 역할이 중요하며, 하드웨어 복잡성을 줄이고 소프트웨어 최적화에 의존한다. . SuperscalarVLIW가 어떤 instruction을 동시에 처리할지 컴파일러가 정적으로 결정한다면 superscalar는 어떤 instruction을 동시에 처리할지 하드웨어에서 동적으로 결정한다. ..
Single cycle implementation:한 사이클에 한 명령어를 완전히 실행한다.모든 명령어가 동일한 시간을 소요한다.구현이 간단하지만 성능이 제한적이다.각 하드웨어 단계를 한 명령어에만 사용한다.Pipeline implementation:명령어 실행을 여러 단계로 나누어 처리한다.여러 명령어를 동시에 다른 단계에서 처리한다.전체적인 처리량이 증가한다.하드웨어를 더 효율적으로 사용한다.구현이 복잡하며 파이프라인 해저드 관리가 필요하다. Instruction fetchInstruction fetch 단계는 다음과 같이 작동한다:Instruction memory에 32비트 명령어가 주소에 맞게 저장되어 있다.PC(Program Counter)가 instruction memory에 명령어 주소를 ..
Branch Prediction은 Fetch 단계에서 세 가지를 예측하는 기술이다. 이는 명령어의 branch 여부, branch의 taken/not taken 여부, 그리고 branch의 target address이다.Branch Target Buffer(BTB)는 이전에 taken된 branch의 target address를 저장하는 저장소다. BTB는 현재 명령어가 branch인지 판단하는 데도 사용된다. Branch Prediction은 정적 예측과 동적 예측으로 나뉜다. 정적 예측에는 always not taken, always taken, BTFN, profile based, program analysis based 방식이 있다. 동적 예측에는 Last time prediction, Two-b..
데이터 베이스 설계요구사항 분석 -> 개념적 설계(ER 모델링) -> 논리적 설계(스키마로 사상) -> 스키마 정제(정규화) -> 물리적 설계(데이터베이스 성능 향상) ER 다이어그램에서의 강한 관계와 약한 관계ER 다이어그램(개체-관계 다이어그램)은 데이터베이스 설계에서 중요한 역할을 하며, 개체(엔티티)와 관계(리레이션십)를 시각적으로 표현한다. 이 다이어그램에서 강한 관계와 약한 관계는 데이터 모델링의 핵심 요소로 간주된다. 강한 관계 (Strong Relationship)강한 관계는 두 개체 타입(엔티티 타입) 간의 직접적인 관계를 나타내며, 두 개체가 독립적으로 고유하게 식별될 수 있는 경우에 성립한다. 약한 관계 (Weak Relationship)약한 관계는 강한 엔티티 타입과 약한 엔..
1. 다윈이 중요한가? 세포 하나가 인간이 만든 기계보다 복잡하다 윌리엄 페일리의 시계 비유시계는 너무나 복잡해서 그냥 우연히 만들어졌다고 생각할 수 없다. 하향식 창조 이론다윈 이전의 세계관으로 복잡한 것은 반드시 더 복잡하고 똑똑한 것으로부터 나온다생명의 복잡한 적응적 '설계'는 모두 피라미드 꼭대기의 신으로부터 유래했다만물은 창조주가 그렇게 만든 목적과 이유가 있음 물리 세계와 달리 의미와 목적의 세계는 자연과학만으로 설명할 수 없고, 종교나 인문학으로 설명된다. 상향식 창조 이론다윈의 세계관으로, 복잡한 것은 덜 복잡한 것으로부터 생길 수 있다는 이론자연 선택에 의한 진화 복제 가능한 최초의 생명 -> 생명의 복잡한 적응이 만들어짐 설계자가 없어도 설계가 가능하다다윈은 생명의 설계도 자연..
Forwarding and Routing네트워크에서 데이터 패킷을 라우터의 입력에서 적절한 라우터 출력으로 전송하는 것을 Data Plane이라고 한다. 이는 패킷을 전달하는 역할을 수행한다. 반면, 라우팅은 소스에서 목적지까지 패킷이 이동하는 경로를 결정하는 것을 말한다. 이는 Control Plane의 역할로, 네트워크에서 라우터들이 어떻게 동작해야 하는지 결정한다. 네트워크 Control Plane을 구성하는 두 가지 접근 방식이 있다. 첫 번째는 기존의 개별 라우터 제어(per-router control) 방식으로, 각 라우터는 독립적으로 동작하며 자신의 결정을 내리는 방식이다. 두 번째는 소프트웨어 정의 네트워킹(software defined networking)에서 사용되는 논리적으로 중앙 집..
송신 호스트로 전송된 세그먼트는 데이터그램으로 캡슐화된다. 그 후 네트워크 계층을 통해 라우터를 거쳐 수신 호스트로 전달된다. 수신자는 데이터그램을 받아서 세그먼트를 추출한다. 또한 라우터는 IP 데이터그램을 한 뒤, 입력 포트에서 출력 포트로 이동시킨다. 네트워크 계층의 기능에는 두 가지가 있다:포워딩(Forwarding): 라우터의 입력 링크에서 패킷을 적절한 출력 링크로 이동시키는 과정이다. 포워딩은 환승역에서 기차를 갈아타는 것으로 비유할 수 있다.라우팅(Routing): 소스에서 목적지까지 패킷이 전달되는 경로를 결정하는 과정이다. 라우팅은 여행을 계획하는 과정으로 비유할 수 있다.라우팅 알고리즘은 네트워크에서 패킷의 경로를 결정하는 데 사용되는 알고리즘이다. 이 알고리즘은 네트워크의 상황과 ..
Underfitting / Overfitting 머신러닝에서 underfitting과 overfitting은 모델이 데이터를 어떻게 학습하고 일반화하는지에 대한 중요한 개념이다. Underfitting: 이는 모델이 학습 데이터를 충분히 학습하지 못해, 데이터의 패턴을 제대로 파악하지 못하는 상황을 말한다. 이 경우, 모델은 학습 데이터에서도 낮은 성능을 보이며, 새로운 데이터에 대해서도 잘 예측하지 못한다. Underfitting은 주로 모델의 복잡성이 너무 낮아 발생하며, 이는 모델이 너무 단순하여(모델의 용량이 너무 작음) 데이터의 복잡성을 캡처할 수 없음을 의미한다. Overfitting: 반면에 overfitting은 모델이 학습 데이터를 너무 과도하게 학습하여, 특정 학습 데이터에만 과도하게 ..