분류 전체보기

    [논문리뷰]Generative Pretraining from Pixels_ImageGPT/OpenAIGPT/이미지GPT

    [Chen et al. 2020] Generative Pretraining from Pixels 2020, ICML 논문 기재 자연어처리로 유명한 OpenAIGPT를 만든 회사, OpenAI에서 쓴 논문입니다. 자연어처리에서 사용하는 GPT모델을 이미지에도 사용하였다는 신기한 내용의 논문이라서 읽어보고 리뷰해보았습니다. 'NLP의 단어들 = 이미지 픽셀' 이라고 생각하고 처리하였다고 보시면 됩니다. 자연어처리에서 단어들로 빈칸을 예측하여 채웠듯, 이미지 픽셀로 채운 것입니다. "이미지GPT(Image GPT)"로 알려진 논문입니다. GPT-3는 자연어처리에서 소설 쓰기, 이메일 답장, 가계부 완성, 자동 웹페이지 작성 등의 작업을 할 수 있다고 합니다. 이를 이미지에도 적용시킨 것이 재밌어서 리뷰해보았습..

    [의료공학/BioInformatics] Sequence Alignment

    Alignment Algorithms -Global Alignment 비슷한 사이즈의 두 sequence align Needleman-Wunch 알고리즘 -Local Alignment 크기에 상관없이 두 sequence align 전체 시퀀스의 best match of sub-sequences를 찾기. Smith-Waterman 알고리즘 두 알고리즘 모두 다이나믹 프로그래밍에 근거한다.(동적계획법) 피보나치 수열이 동적계획법의 가장 대표적 예시다. Manhattan Tourist Problem Longest common Subsequence

    [의료공학/BioInformatics] Genome Sequencing

    Genome sequencing은 4가지 단계의 반복이다. cut, amplifying, sequencing, aligning 1. Cutting: Restriction Endonuclease Restriction Endonuclease는 DNA를 특정 site에서 자른다. 2. Amplifying: Bacterial Artificial Chromosome(BAC) 큰 genome sequencing을 위해 사용(인간 게놈 같은) genome을 150-350kbp 길이로 자르고, 박테리아에 삽입하고, 키운다. Amplifying: Polymer Chain Reaction(PCR) BAC는 in vivo(in life)에 많은 작업이 필요해 작은 작업에는 안 어울린다. PCR는 dna를 in vitro에 ..

    [의료공학/BioEngineering] RNA, Protein Coding, Gene

    Ribonucleic Acid(RNA) RNA는 DNA와 비슷하게 4개의 nucleotides의 sequence다. DNA는 double-strand, RNA는 single-strand. DNA는 A,C,T,G를 RNA는 Adenine,Cytosine,Uracil,Guanine를 쓴다. DNA가 RNA보다 훨씬 stable하다. deoxy, no hydroxyl group때문에 DNA는 static genetic material, RNA는 temporal, dynamic effective material. RNA 종류 세포에는 다른 종류의 RNA가 존재한다. messenger_mRNA: transfers information from the genome into proteins by translation..

    [의료공학/Bioengineering]Gene Expression 유전자 발현

    DNA —> Enzyme(protein) —> Phenotype Transcription and TranslationDNA-(transcription)->RNA-(translation)->Protein->Phenotype 유전자 정보는 DNA에서 RNA로 그리고 단백질로 흐른다. 유전자는 기능적 RNA와 단백질의 청사진 역할을 하는 DNA의 구역입니다. DNA는 뉴클레오타이드(nucleotide)로 구성되어 있고 단백질은 아미노산으로 구성되어 있기 때문에, DNA에 암호화되어 있는 정보를 단백질로 변환하는 매개자가 필요합니다. 이 매개자는 전령RNA(messenger RNA, 줄여서 mRNA)입니다 mRNA는 전사(transcription)라고 불리는 과정을 통해 DNA의 청사진을 복사합니다. 진핵생물(..

    [인공지능/AI/NLP/자연어처리]BERT Neural Network 언어모델 쉽고 간단한 설명

    구글이 소개한 자연어처리 언어모델 BERT를 간단하고 쉽게 구조를 설명해보았습니다. LSTM vs TransformerTransformer는 기존 RNN과 LSTM 문제를 해결하기 위해 등장하였다. LSTM은 학습이 너무 느렸고, bidirectional하지 못하다는 단점이 있다. 하지만 Transformer는 학습이 빠르고 simultaneously하게 deeply bidirectional하다. 트랜스포머 모델은 encoder과 decoder로 구조가 이루어져있고 예를 들어, 영어->한국어로 번역작업을 한다면 encoder는 “My dog is called Henry.”라는 문장 단어들을 simultaneous하게 받아서 각 단어들의 임베딩을 simultaneously하게 작업한다. decoder는 이..

    [인공지능/AI] Hyperparameter Tuning (Optimization) 하이퍼파라미터 튜닝 (최적화)

    Hyperparameter? 하이퍼파라미터는 머신러닝 모델의 성능을 향상하기 위한 것이다. 기존 변수가 아니라 자동 설정되는 변수다. 최적화하여 모델의 에러를 줄이는 등 머신러닝 학습 성능을 향상시킨다. 종류들로는 두 가지 관점에서 볼 수 있는데 model related와 optimization related의 관점이 있다. Model Related Number of hidden layer MLP에는 ~10개 층(2,3개 넘어가면 효율이 굳이 더 좋아지는 것 같진 않다.) 최근 CNN에는 ~152, ~1000 개 층까지 학습이 된다. Number of hidden unit ~1024 정도 층까지 시도해볼 수 있다. Activation Function sigmoid와 tanh는 gradient vanish..

    [인공지능/AI] Cross Entropy 크로스 엔트로피

    인공지능 관련 공부를 하거나 논문을 보면 기본적으로 항상 등장하는 개념으로 loss function(손실함수)와 cross entropy 등이 있습니다. 무엇인지 어렴풋이는 알아도 정확하게 자세히 알고 있지 않다면 이 글을 참고하시기 바랍니다.Entropy 엔트로피Entropy라는 것은 불확실성(uncertainty)에 대한 척도다. 즉, 엔트로피를 이용해서 불확실성을 줄이고자 하는 것이다. 가장 대표적인 예시로 가방에서 공 꺼내기이다. 공 안에 빨간공으로만 가득하다면 엔트로피=0이다. 불확실성을 신경 쓸 필요가 없다 이 경우엔. 하지만 만약 검은공과 빨간공이 절반씩 담겨있다면 엔트로피는 log(2)=0.69다. 사건 개수가 n이라면 entropy는 log(n)이다. 이 경우엔 entropy가 크다고 말..

    [선형대수/Linear Algebra] 선형독립 vs 선형종속

    선형독립 Linearly Independent vs 선형종속 Linearly Dependent 위키백과에 따르면 In the theory of vector spaces, a set of vectors is said to be linearly dependent if at least one of the vectors in the set can be defined as a linear combination of the others if no vector in the set can be written in this way, then the vectors are said to be linearly independent.

    [선형대수/Linear Algebra] Rank(계수) 개념 정리

    위키백과에 따르면, Rank의 정의는 이렇습니다. In linear algebra, the rank of a matrix A is the dimension of the vector space generated (or spanned) by its columns. 행렬 A의 랭크는, A의 열로 생성 또는 span된 벡터공간의 차원이다. 행공간과 열공간의 차원은 같으므로 이는 랭크의 개념에도 접목됩니다. 행렬에 가우스소거법을 적용하여, 사다리꼴 행렬에서 0이 아닌 행의 개수가 rank라고 계산해 된다. (이때도 물론 행 랭크와 열 랭크 같음)

    [논문리뷰/NLP] Pre-training of Deep Bidirectional Transformers for Language Understanding

    구글이 2019년 발표한 BERT 논문을 리뷰하였습니다. Abstract BERT는 Bidirectional Encoder Representations from Transformers 를 뜻하고 다른 LM(language model)들과 달리, 모든 층의 left and right (bidirectional) 방향으로 pretrain합니다. 먼저 pretrained language model을 설명하자면, 두 가지로 나뉩니다. feature-based와 fine-tuning. feature-based 방식엔 대표적으로 ELMo가 있고, pre-trained representations를 추가해서 task-specific 구조를 사용합니다. fine-tuning방식은 대표적으로 OpenAI GPT가 있고,..

    [운영체제/OS] Deadlock Detection

    Deadlock Detection 교착상태 탐지 Detection Algorithm 시스템이 deadlock state인지 detect하는 알고리즘 1. Work = Available Allocation[i]가 0이 아니면, Finish[i] = false. (안전한지 detection 검사) 그 외는 Finish[i] = true 2. (a) Finish[i] == false (b) Request[i] 오늘날은 사실상 불가능.. -process termination(프로세스 종료): 모두 중지: 구현은 쉽지만 오버헤드와 비용이 크다. 제거될 때까지 하나씩 중지: n^2의 복잡도 -resource preemption(자원 선점): deadlock으로 인해 멈춘 프로세스들로부터 자원을 뺏어옴. 자원 선점의..

    [운영체제/OS] Deadlocks 데드락

    요청(request): 만약 요청이 즉시 승인되기 힘드면, 요청 프로세스는 자원 획득까지 대기해야한다. 사용(use): 프로세스는 자원을 이용한다. 방출(release): 프로세스는 자원을 놓아준다. Deadlock Characterization 데드락 발생 (가능한) 조건 _ 반드시 4가지 모두! 발생한 경우 -Mutual exclusion: 동시에 하나의 프로세스만 독점적으로 자원을 사용할 수 있다. -Hold and wait: 한 프로세스가 하나의 자원을 갖고있으면서 다른 프로세스의 자원을 또 요청하려고 기다림. -No preemption(선점 허용x): 점유하던 프로세스가 자발적으로 release해야지만 자원이 release된다. (프로세스가 본인작업 완료 후) -Circular wait: 위 세..

    [운영체제/OS] POSIX Semaphore 동기화

    POSIX Semaphore -Named semaphore 여러 프로세스에서 공유할 수 있다. #include sem_t *sem; /*create the semaphore and initialize it to 1*/ sem = sem_open("SEM", O_CREAT, 0666, 1); /*acquire the semaphore*/ sem_wait(sem); /*critical section*/ /*release the semaphore*/ sem_post(sem); -Unnamed semaphore #include sem_t sem; /*create the semaphore and initialize it to 1*/ sem_init(&sem, 0, 1); /*acquire the semaphore..

    [운영체제/OS] Mutex Locks, Semaphore, Conditional Variable

    Mutex Locks 임계구역문제 해결을 위해서 운영체제 디자이너들이 만들었다. 임계구역문제에 대해서 알고싶다면 지난 게시글을 참고해주세요~ [운영체제 OS] - [운영체제/OS] Synchronization_동기화, 임계 구역 문제 [운영체제/OS] Synchronization_동기화, 임계 구역 문제 동기화(Synchronization) Producer (=master): 데이터 생성 while(TRUE) { //produce an item and put into the buffer while(counter==BUFFER_SIZE) //is buffer full? ; //do nothing //busy waiting. spin lock.. hidemasa.tistory.com 임계구역을 처음에 acq..

    [운영체제/OS] Synchronization_동기화, 임계 구역 문제

    동기화(Synchronization) Producer (=master): 데이터 생성 while(TRUE) { //produce an item and put into the buffer while(counter==BUFFER_SIZE) //is buffer full? ; //do nothing //busy waiting. spin lock buffer[in] = nextProduced;//write연산 (차있지 x경우) in = (in+1) % BUFFER_SIZE; counter++; } Consumer while(TRUE) { while(counter == 0) //is buffer empty? ; //do nothing nextConsumed = buffer[out]; out = (out+1) % ..

    [운영체제/OS] 멀티스레드에서의 fork()와 exec(), Signal Handling

    fork(), exec() 시스템콜 멀티 스레드 프로그램에서 프로세스를 복제/생성하는 fork() 시스템콜을 실행한다면 어떻게 될까?? 메인의 하나만 복제해야할까, 아니면 모두 각각 복제해야할까? 몇몇 유닉스 시스템은 두가지 버전을 모두 지원한다. exec()의 경우에는 기존 스레드들을 모두 무시하고, 새로운 프로그램으로 대체된다. fork()이후 exec()를 호출하면, 모든 스레드를 복제할 이유가 없다. fork() 이후 exec()가 호출되지 않는다면, 모든 스레드의 복제가 의미가 있다. Signal Handling(시그널 처리) Signal의 두 가지 유형: -Synchronous signal: 어떤 사건을 처리하기 위해 발생 ex)불법적인 메모리 접근, 0으로 나누기 -Asynchronous s..

    [운영체제/OS] User 스레드와 Kernel 스레드, Implicit Threading

    User Threads and Kernel Threads 유저 스레드- user-level 스레드 라이브러리에서 관리. 주요 라이브러리는: POXIS Pthreads, Windows threads, Java threads 커널 스레드- 커널의 지원. Windows, Solaris, Linux, Max OS X와 같은 운영체제들 유저 스레드와 커널 스레드 사이의 멀티스레드 모델: Many-to-One, One-to-One, Many-to-Many Many-to-One Model many user 스레드가 single kernel 스레드와 연결 하나의 스레드 blocking은 모두 block된다. One-to-One Model user 스레드를 생성하면 kernel 스레드가 생성된다. many-to-one에..

    [운영체제/OS] User 스레드와 Kernel 스레드, Implicit Threading

    User Threads and Kernel Threads 유저 스레드- user-level 스레드 라이브러리에서 관리. 주요 라이브러리는: POXIS Pthreads, Windows threads, Java threads 커널 스레드- 커널의 지원. Windows, Solaris, Linux, Max OS X와 같은 운영체제들 유저 스레드와 커널 스레드 사이의 멀티스레드 모델: Many-to-One, One-to-One, Many-to-Many Many-to-One Model many user 스레드가 single kernel 스레드와 연결 하나의 스레드 blocking은 모두 block된다. One-to-One Model user 스레드를 생성하면 kernel 스레드가 생성된다. many-to-one에..

    [운영체제/OS] Threads & Concurrency

    멀티스레드 자료구조 멀티스레드의 장점: 병렬적으로 여러 스레드를 한번에 동시에 동작할 수 있다. Responsiveness Resource Sharing: 자원 공유 비용 감소 Economy: 스레드 생성이 프로세스 생성보다 비용 감소. 스레드 스위칭 오버헤드가 컨텍스트 스위칭보다 낮음. Scalability: 프로세스는 멀티프로세서 자료구조의 이점을 받는다. Multicore (Multiprocessor) Programming 개발자가 multicore나 multiprocessor 시스템을 구현할 때는 Task dividing activities Load balancing Data splitting Minimizing data dependency Testing and debugging Paralleli..