본문 바로가기

전체 글22

아주 쉽게 이해하는 Image Classification computer vision 의 가장 대표적인 task 중 하나인 Image classification! 내가 이해하고 있는 classification에 대해 설명해보려고 한다. 나는 개별적인 이론을 이해하는 것이 어렵진 않았지만, 전체적인 흐름과 실질적인 모델의 학습 원리를 뒤늦게 깨우쳤기에... 딥러닝 모델이 어떻게 작동하는지를 중심으로 설명하고자 한다! Image Classification 이란? Image Classification(이미지 분류)는 computer vision task중 하나로, 이미지 내용을 기반으로 이미지를 분류하고 레이블을 지정하는 과정을 말한다. 가장 쉬운 예시를 들자면, 강아지와 고양이를 분류하는 문제에서 아래의 이미지가 둘 중 무엇인지를 판별하는 것이다. 물론, 위의 예.. 2024. 1. 29.
경량화: Pruning(가지치기) 기법 Pruning 이란? 모델의 크기를 줄이고 계산량을 감소시키기 위해 불필요한 가중치 혹은 레이어를 제거하는 기법 Why pruning? Traning operations 감소: Pruning을 통해 일부 가중치 또는 연결이 제거되면 연산량이 감소하게 됩니다. 이로 인해 forward 및 backward 연산이 더 빠르게 수행될 수 있습니다. Training memory 감소: 제거된 가중치에 대한 메모리를 절약할 수 있습니다. 이는 GPU 메모리 사용량을 줄이고, 더 큰 배치 크기를 사용하거나 다른 복잡한 모델을 실험할 수 있게 해줍니다. Sparsity로 인한 Inference Acceleration: Pruning에 의해 희소한 모델이 만들어지면, 추론 시에 0에 해당하는 가중치들이 곱셈 연산에서 제.. 2024. 1. 27.
Analyzing Algorithms and Problems : Principles and Examples [contents] Introduction Mathematical Background Analyzing Algorithms and Problems Classifying Functions by Their Asymptotic Growth Rates Searching an Ordered Array computer algorithm 이란? - 컴퓨터를 이용하여 유한한 시간내에 문제를 풀기위한 자세한 단계 ...?! 직독직해하니 조금 이상하긴 하다.. 의미는 비슷하니 pass~ 문제 해결 단계 1. 문제정의 input output 2. 전략 3. 알고리즘 서술 input output step 4. 분석 Correctness Time/Space efficiency Optimality : problem complex.. 2021. 9. 6.
Memory Management Disk에 있는 프로그램을 main memory에 올리기 위해 1. 언제 올릴건지 2. 어디에 올릴건지 3. 어떤 프로세스를 올릴건지 를 결정해야한다. 주 요구사항은 Allocation, Relocation, Protection, Sharing 이러한 내용들이 효율적이고 transparent하게 관리되어야 한다. 먼저 address에 대해 살펴보자 Address Types Symbolic address - 변수 이름같은 상징적인 주소를 의미한다. - 소스코드에 사용된다. Logical or relative address (or virtual address) - 프로세스의 위치를 상대적으로 나타내는 주소이다. - 시작위치로부터 떨어진 거리를 의미한다. Physical or absolute address -.. 2021. 6. 12.
Deadlock Deadlock이란? 두 개 이상의 프로세스가 더 이상 진행할 수 없는 상황 a,b,c,d는 resource, 자동차는 process라고 하자. 모든 자동차가 서로 지나가려고 하다가 꽉~막혀버렸다. 이런 상황을 deadlock이라고 표현할 수 있다. resource는 한 번에 하나의 프로세스에 의해 사용될 수 있다. 하드웨어와 소프트웨어 모두 될 수 있다. 즉, OS가 개입할 여지가 있다는 말이다! 잘 활용하면.. deadlock막을 수 있겠는데..? 일반적으로 데드락은 Non preemption resources를 가정한다. Resource Allocation Graphs 데드락을 미연에 방지할 수 있다! 먼저 vertices부터 살펴보자 동그라미로 표시되는 Px는 프로세스를 의미하고, 네모로 표시되는.. 2021. 6. 11.
질문들 Q.여러개의 프로세스를 병렬적으로 수행할 수 있는가? A. 그렇다. 멀티 코어를 이용하여 가능하다. comment. 나는 멍청하게도 하나의 프로세서로 프로세스를 병렬 수행할 수 있는지 궁금했다... CPU가 하나니까 당연히 프로세스도 하나만 처리된다... 2021. 5. 27.
STT(Speech to text) Speech Recognition(음성인식) : 사람이 말하는 음성 언어를 컴퓨터가 해석해 그 내용을 문자 데이터로 전환하는 처리 App의 기본 기능인 STT를 간단히 구현. 1. manifest 파일 STT를 활용하기 위한 permission을 추가해준다. //STT를 위한 permission추가 2. XML파일 현재 음성상태를 나타내주고 음성인식의 시작과 끝을 확인할 수 있는 imagebutton과 text를 나타내는 textview를 만든다. 이제 MainActivity로 와서 3. Recognizer intent 객체 생성 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConten.. 2021. 5. 20.
Synchronization Synchronization 여러 threads가 shared resource에 동시에 접근하면 incorrect result를 얻을 수 있다.(race condition) 이러한 문제를 미연에 방지하기 위한 방법을 synchronization이라고 한다. Race condition thread가 자원 공유를 할 때의 결과가 non-deterministic(non-reproducable)인 문제l 이 결과는 timing에 의존한다 Multi-threading : CPU 스케줄러에 의해 'interleaved' 될 수 있다. Multi-processor : 다중처리기에서 실행 timing은 CPU가 얼마나 바쁜지에 따라 다르다. 하나의 명령코드는 여러개의 instruction으로 나누어질 수 있다. 하나의.. 2021. 5. 19.
Thread Concurrency vs Parallelism Concurrency : 동시성,병행성 동시에 진행된다. 즉 (a)를 보면 단일 프로세서에서 여러 thread의 프로세스들이 interleaving(끼어들기)하며 동시에 진행이 되고있다고 표현한다. concurrency는 parallelism까지도 표현하는 용어이다. Parallelism : 병렬성 동시에 실행된다. 즉 (b)를 보면 다중 프로세서에서 여러 thread의 프로세스들이 interleaving과 overlapping을 하며 동시에 실행되고 있다. Thread 현대의 OS는 프로세스와 thread의 개념을 분리한다. process는 스케줄링의 단위(실행단위)이면서 자원소유권의 단위이다. thread의 개념을 도입하여, 자원소유권을 process로.. 2021. 5. 16.