New
-
Decoding 기법 정리
- Greedy Search - 현재 단어 다음에 나올 단어 후보 중 가장 확률이 높은 것 선택 - (장점) 비교적 간단한 알고리즘 - (단점) 동어 반복 현상 발생 - (단점) 현재 시점 바로 다음 단어만 고려. - Beam Search - 현재시점 이후 여러 step의 단어 조합을 keep 해놓고 해당 확률을 곱하여 점수를 내고 다른 조합과 비교하여 가장 높은 것 선택 - (장점) 뒤에 나올 확률이 높은 단어를 선택하여 좀 더 좋은 문장 생성 - (단점) 연산속도 증가 - (단점) 반복문제 여전히 존재 → n-gram(연속된 단어 개수 허용범위) 사용 - num_beams → Beam Search에 쓰이는 beam의 개수 - no_repeat_ngram_size → 특정 n-gram이 생성문장 내에서..
-
간단한 자연어 분석
1. 각 라벨별 가장 많이 나오는 단어 찾기 from collections import Counter import pandas as pd df = pd.read_csv('train.csv') uniqueLabel = df['label'].unique() for Label in uniqueLabel: temp_df = df[df['label'] == Label] words = ' '.join(temp_df['sentence']).split() word_counts = Counter(words) most_common_word = word_counts.most_common(5) print(f"'{Label}'에서 가장 많이 나오는 단어: {most_common_word}") 2. 각 라벨 별 분포도 체크 im..
-
Transformer_Encoder (트랜스포머 인코더 쉽고 자세하게 설명하기)
오늘은 트랜스포머의 인코더 부분을 쉽게 설명하고자함. 많은 사람들이 트랜스포머의 기법에 대해서 물어보면 "Self-attention 기법 사용... 특정 단어에 포커싱.." 혹은 "Q,K,V 사용해서...조합해서 가중치주는 기법..." 정도로만 대답함. 실제 어떤 식으로 돌아가는지 쉽고 자세하게 설명하기 위해 본 포스팅을 진행함. 애매하게 아는 분 환영 트랜스포머의 인코더 레이어는 그림에서 보이다 싶이 크게 3가지로 나눠볼 수 있음. - 멀티헤드 셀프어텐션 - 포지셔닝 와이즈 피드포워드 뉴럴네트워크 - 에디션 앤 레이어 노말리제이션 한글로 쓰니 형편없어 보이긴 하지만 그냥 넘어가겠음. 일단 입력 문장이 모델에 입력되면 > 포지셔닝 인코딩을 통과 > 벡터화(각 단어의 위치정보가 포함)된 입력 문장이 들어옴..
-
[논문리뷰] CNM: An Interpretable Complex-valued Network for Matching
양자역학을 간단하게 공부하였었습니다. 이를 어느정도 이해한 다음 양자컴퓨팅, 양자AI에 대해서 관련된 여러 논문들을 찾아보고 공부하였는데, 자연어를 양자역학과 융합한 논문이면서 동시에 NAACL에서 Award받은 논문이라 읽게 되었습니다. Paper Description 제목 : CNM: An Interpretable Complex-valued Network for Matching 저자 : Li et al. Date : 2021.06 인용수 : 53 Publisher : Association for Computational Linguistics Venue : NAACL(North American Chapter of the Association for Computational Linguistics) Awa..
-
[논문리뷰] Emoberta: Speaker-aware emotion recognition in conversation with roberta
Kim, Taewoon, and Piek Vossen. "Emoberta: Speaker-aware emotion recognition in conversation with roberta." arXiv preprint arXiv:2108.12009 (2021). introduction 감정 인식의 범위는 표정, 음성,텍스트 등 매우 넓음. 본 논문에서는 감정 인식의 하위 분야인 대화에서 감정 인식( ERC)에 중점을 둠. ERC는 한사람 또는 그 이상의 사람과 대화에 참여하는 현재 화자의 감정을 예측하는 것 감정을 인식하는 것은 감성 컴퓨팅 및 인간-로봇 통신과 같은 분야에서 중요. 인간은 대화(시각, 음성 등)을 하기위해 여러 감각 입력을 사용함 따라서 ERC 작업에는 여러 양식(시각, 오디오, 텍스트..
-
감정을 녹인 KoGPT 기반 챗봇 제작
주제 : 중고등학생을 위한 학과 교수님 인터뷰 챗봇 의의 : 대학 진학 전, 유용한 정보를 얻을 수 있음! 결과 미리보기 : 학습에 필요한 데이터셋 : 학과의 개수는 총 320개가 있으며, 평균 질의응답 개수는 11쌍, 최대 19쌍 까지 이어집니다. 데이터셋의 대표 질문: 1.교수님께서 전공 선택한 동기이 무엇인가요 2.어떤 분야에 관심 갖는 사람이 이 학과로 오면 좋을까요 3.이 학과에서 가장 중요한 공부는 어떤 내용인가요 4.이 학과에서 공부 잘할려면 중고등학생때 어떤 교과목을 공부하면 좋은가요 5.이 학과의 장점은 뭔가요 6.이 학과의 학생들이 겪는 어려움은 뭔가요 7.학과 졸업생이 가장 많이 진출하는 직업분야는 어느 곳인가요 8.학과의 앞으로의 전망은 어떤가요 9.지금은 없지만 앞으로 새로 생기게..
-
[논문리뷰] GPT Understands, Too
Liu, Xiao, et al. "GPT understands, too." arXiv preprint arXiv:2103.10385 (2021). NLU Task에서 약함을 보여주었던 GPT가 BERT 계열을 이긴 P-Tuning에 대한 논문입니다. 이를 이해하기 위해서 그동안의 자연어 이해 연구 흐름에 대해서도 설명합니다.
-
[논문리뷰] FEDNLP, Federated Distillation of Natural Language Understanding with Confident Sinkhorns
Lin, Bill Yuchen, et al. "Fednlp: Benchmarking federated learning methods for natural language processing tasks." arXiv preprint arXiv:2104.08815 (2021). Abstract 자연어 처리(NLP) 작업을 위한 개인 정보 보호, 분산형 학습 방법에 대한 연구가 필요 NLP 작업에 대한 FL 방법 연구에 대한 관심에도 불구하고 문헌에는 체계적인 비교 및 분석이 부족 텍스트 분류, 시퀀스 태깅, 질문 답변 및 seq2seq의 네 가지 작업 공식에 대한 연합 학습 방법을 평가하기 위한 벤치마킹 프레임워크인 FedNLP를 제시 Motivate FL 영역의 발전에도 불구하고 NLP에 대한 연구와 적용..
AI
-
[논문구현]Self-Explaining Structures Improve NLP Models
Sun, Zijun, et al. "Self-explaining structures improve nlp models." arXiv preprint arXiv:2012.01786 (2020). 현재 자연어 추론부분에서 상위 부분을 차지하고 있는 논문이다. 처음 Pre-print라는 것을 확인했을 때 꼬름한걸 알아차렸어야했는데, 여러 대회에서도 본 논문의 기법을 사용한 방법도 많고, 점수도 높게나와서 좋은 방법이구나 하였다. 학회에 등록 안된걸 무시하면 안되었다.. 논문 그대로 직접 구현해보니 Base 모델보다 성능이 더 안좋다. 이 기술 사용한다고 몇주날린지 모르겠다.. 부들.. 내가 잘못한건지, 논문에서 구라친건지 모르겠지만... 꼬름한점이 한둘이 아니다. 일단 서론은 여기까지하고 Abstract 1...
-
[논문리뷰]Are Prompt-Based Models Clueless?
Kavumba, Pride, Ryo Takahashi, and Yasuke Oda. "Are Prompt-based Models Clueless?." arXiv preprint arXiv:2205.09295 (2022). 2022년도 5월에 ACL에서 나온 논문입니다. 주제는 Prompt-based Models도 Superficial Cues를 사용하는지, 사용한다면 악용하여 일반화 성능이 떨어지게 만들지는 않는지 분석하여 확인하는 논문입니다. (참고자료) DiceLab SangHun Im
-
[논문리뷰] It’s Not Just Size That Matters: Small Language Models Are Also Few-Shot Learners
Schick, Timo, and Hinrich Schütze. "Exploiting Cloze-Questions for Few-Shot Text Classification and Natural Language Inference." Proceedings of the 16th Conference of the European Chapter of the Association for Computational Linguistics: Main Volume. 2021. Schick, Timo, and Hinrich Schütze. "It’s Not Just Size That Matters: Small Language Models Are Also Few-Shot Learners." Proceedings of the 20..
-
미술 치료 분석을 위한 AI기반 예술 작품 제작 및 증대 방안
미술 치료 분석을 위한 AI기반 예술 작품 제작 및 증대 방안 13th Workshop on Convergent and Smart Media System (CSMS) 2021.12.27
-
의미론적 관계 추론을 위한 문장 유사성 전이 학습 방법
의미론적 관계 추론을 위한 문장 유사성 전이 학습 방법 A Sentence Similarity Transfer Learning Method for Inference of Semantic Relation 2022 한국차세대컴퓨팅학회 학술대회 https://www.earticle.net/Article/A412361 의미론적 관계 추론을 위한 문장 유사성 전이 학습 방법 최근 텍스트 데이터 분석의 요구가 증가함에 따라 문장의 의미적 관계를 이해하고 사용자가 요구하는 분석 정보를 제공 하기 위한 추론 기법의 필요성이 증가하고 있다. 이를 위해 의미 관계 추 www.earticle.net
-
[논문리뷰]A Neural Probabilistic Language Model
A Neural Probabilistic Language Model Bengio, Yoshua, Réjean Ducharme, and Pascal Vincent. "A neural probabilistic language model." Advances in Neural Information Processing Systems 13 (2000). NPLM은 단어를 임베딩하여 벡터로 바꾸는 과정에서 신경망 기반의 기법을 제시하여 향후 Word2Vec으로 가는 기반이 되었다고한다. 간단하게 학습 데이터에 존재하지 않는 n-gram이 포함된 문장이 나타날 확률을 0으로 매긴다 n을 5이상으로 설정하기 어렵기 때문에 문장의 장기 의존성을 포착해내기 어렵다. 단어/문장 간 유사도는 고려 하지 않는다. neural n..
-
[논문리뷰]Distributed Representations of Words and Phrases and their Compositionality
Distributed Representations of Words and Phrases and their Compositionality Mikolov, Tomas, et al. "Distributed representations of words and phrases and their compositionality." Advances in neural information processing systems 26 (2013). Abstract (Eng.) The recently introduced continuous Skip-gram model is an efficient method for learning high-quality distributed vector representations that cap..
-
[논문리뷰]Efficient Estimation of Word Representations in Vector Space
2022.02.20 - [Artificial_Intelligence/Papers] - [논문리뷰]Distributed Representations of Words and Phrases and their Compositionality [논문리뷰]Distributed Representations of Words and Phrases and their Compositionality ㄴDistributed Representations of Words and Phrases and their Compositionality Mikolov, Tomas, et al. "Distributed representations of words and phrases and their compositionality." Advance..
List
-
[Linux] 5
- 사용자 계정과 관련된 파일중 암호를 /etc/shadow 파일에 별도로 저장하는 이유 /passwd 파일에 보관을 하게 되면 누구나 읽을 수 있기 때문에 누군가가 암호를 해독하여 사용할 위험이 높아진다. 따라서 보안을 위해 암호는 shadow파일에 별도로 저장하여 root사용자만 읽을 수 있게 한 것이다. - /etc/login.defs 파일의 용도 사용자의 계정과 관련된 기본 값을 정의하고 설정하는 파일이다. 암호에 대해 최대 사용일, 최소 사용일, 만료 경고일, 패스워드 최소 길이를 설정할 수 있고, 사용자와 시스템 계정의 UID와 GID 범위를 지정할 수 있다. 홈 디렉토리를 생성할 것인지, UMASK의 값은 뭐로 할 것인지, 사용자 계정을 삭제할 때 그룹도 삭제할 것인지를 설정할 수 있다. -..
2021.01.13 23:13 -
[Linux] 6
- X 윈도 X윈도는 유닉스계열의 운영체제에서 사용되는 윈도우로, GUI (Graphical User Interface) 환경을 구현하기 위해 기본적인 프레임워크를 제공한 것이다. - 노틸러스 파일 브라우저를 사용하여 현재 폴더에서 연습 폴더를 만든 후 vi에디터를 사용하여 test.txt 파일을 만드는 (파일 내용은 아무거나 관계없음) 과정 a) 현재활동에 파일 or nautilus를 들어가면 파일 관리자가 열린다. b) 오른쪽 마우스키를 눌러 새폴더를 누르고 새로운 폴더를 만든다. c) 터미널을 켜서 cd명령어를 통해 새폴더 위치로 들어간다. d) vi tset.txt 를 입력하고 내용을 입력한다. e) esc를 누르고 :wq를 하여 저장하고 나온다. - LibreOffice 리브레오피스도 MS-Wi..
2021.01.13 23:20 -
Multi-Agent Reinforcement Learning
MARL(Multi-Agent Reinforcement Learning) - Trying to study Multi-Agent Algorithms in reinforcement learning. - For collaboration or competition, it is a field in which multiple agents interact with each other and find optimal behavior. - In reality, in order for Reinforcement learning to actually apply, the characteristics of various fields must be considered, so multi-agent consideration is ess..
2021.11.23 16:51 -
Computer Architecture 4
4.1 다음 명령어에 대해서 아래 질문에 답하라. 명령어 : AND Rd, Rn, Rm 뜻 : Reg[Rd] = Reg[Rn] AND Reg[Rm] 4.1.1 이 명령어를 실행하기 위해서 그림 4.10의 제어 유닛이 생성하는 제어신호들의 값은? RegWrite MemRoad ALUMux MemWrite ALUop RegMux Branch 0 0 1(Imm) 1 ADD X 0 ALUMux는 ALU 입력에서 Mux를 제어하는 제어신호. 0(Reg)면 레지스터 파일의 출력을 선택, 1(Imm)은 명령어로부터 즉시 ALU에 대한 두번째 입력을 선택. RegMux는 레지스터 파일에 대한 데이터 입력에서 Mux 제어하는 제어신호. 0(ALU)는 ALU의 출력 선택. 1(Mem)은 메모리의 출력 선택. X는 Don’..
2021.04.02 22:52 -
[python] 카카오톡 테러(매크로) 프로그램 만들기
아래는 전체코드입니다. import pyautogui import time #pyautogui.screenshot('white.png',region =(1200, 800, 50,30)) #1200,800위치에 50*30크기로 캡쳐 a1= pyautogui.locateCenterOnScreen('white.PNG') pyautogui.moveTo(a1) #화면 캡쳐한 곳 가운데로 이동 pyautogui.click() #한번 클릭 time.sleep(1) #1초 대기 for i in range(500) : pyautogui.write('Hello World!') pyautogui.write(['enter']) 작동원리 대화 입력창을 스크린샷 파일로 저장을 하여 프로그램이 입력하는 공간을 찾게 만들어줌. lo..
2020.12.29 22:13 -
RSI기반 자동매매 프로그램 제작 (업비트)
2021.08.18 - [Hi/Blockchain] - 자동매매봇 제작기 자동매매봇 제작기 예전에 주식도 해보고 코인도 해봤었는데, 정보도 없이 사람의 머리로 생각하고 손으로 거래하다보니 결과적으로 잃는게 더 컸던 것 같다. 이득보면 욕심이 생기고, 손해보면 언젠간 오르겠지 forbetterdays.tistory.com 위의 글 이후로 많은 사람이 관심이 많은 것 같아서 이후에 제작했던 자동매매 봇을 써볼까 합니다. 본문에서 올리는 코드는 하락장이던 상승장이던 조금씩만 이득보자는 의미로 만들었던 코드로 큰 순익을 기대하진 않습니다. 아래는 RSI 기반의 자동매매 프로그램을 돌리면서 찍힌 값들 입니다. 크게 벌거나 잃지는 않지만 꾸준하게 조금씩 수익이 올라옵니다. 안정성을 추구하였습니다. 백테스팅을 진행한..
2021.11.21 00:38 -
[Linux] 2
- 리눅스 파티션이란? 주 영역 파티션, 확장 파티션.. 리눅스는 윈도우와 달리 최소 2개 이상의 파티션을 사용한다. 파티션이란 하나의 하드디스크를 논리적으로 여러 개의 파티션이라 불리는 영역으로 나눈 것이다. 물리적으로 메모리가 부족한 상황을 대비해 스왑파티션을 사용한다. 주 영역 파티션은 부팅가능한 파티션으로, 한 개의 하드디스크에 4개의 파티션까지 생성 가능하다. 확장 파티션은 주 파티션에서 1개만 생성이 가능하고, 논리적 파티션으로 다시 나눌 수 있는 파티션이다. 저장공간이 없어 논리파티션을 사용할 때에 사용된다. - 논리 영역 파티션의 개념과 사용 방법 논리 파티션은 확장 파티션에서 생성되는 파티션으로, 12개 까지 생성 가능하다. 가상의 디스크로 사용되면서 데이터 저장이 가능하다. 논리 영역 ..
2021.01.13 22:52 -
Learning Rate Scheduler
Learning rate는 backpropagation 과정에서 모델의 weight인 gradient의 변화(업데이트의 보폭 step-size)이다. 역전파 과정에서 모델의 가중치(Weight)는 손실 함수의 오류 추정치를 줄이기 위해 업데이트된다. 학습률 * 추정 가중치 오류(가중치에 대한 기울기 or 전체 오류 변화) >>>> Weight 업데이트 Learning rate는 Optimizer가 Loss function의 최소값에 도달하도록 만드는 변화의 크기를 제어한다. 성능에 영향을 주는 요소인 learning rate를 잘못 설정하면 아예 학습이 안될 수도 있다. 그래서 모델 학습에서는 learning rate를 어떻게 설정할 지가 매우 중요한 요소이다. 학습률이 크면 알고리즘은 빠르게 학습함. ..
2022.05.29 22:23 -
Decoding 기법 정리
- Greedy Search - 현재 단어 다음에 나올 단어 후보 중 가장 확률이 높은 것 선택 - (장점) 비교적 간단한 알고리즘 - (단점) 동어 반복 현상 발생 - (단점) 현재 시점 바로 다음 단어만 고려. - Beam Search - 현재시점 이후 여러 step의 단어 조합을 keep 해놓고 해당 확률을 곱하여 점수를 내고 다른 조합과 비교하여 가장 높은 것 선택 - (장점) 뒤에 나올 확률이 높은 단어를 선택하여 좀 더 좋은 문장 생성 - (단점) 연산속도 증가 - (단점) 반복문제 여전히 존재 → n-gram(연속된 단어 개수 허용범위) 사용 - num_beams → Beam Search에 쓰이는 beam의 개수 - no_repeat_ngram_size → 특정 n-gram이 생성문장 내에서..
2024.03.28 11:29 -
Text Similarity, Semantic Similarity
텍스트 유사도 코사인 유사도 (Cosine Similarity) -> 두 개의 벡터 값의 Cos 각도 유클리디언 유사도 (Euclidean Similarity) -> 두 개의 점 사이의 거리 = L2 거리 맨하탄 유사도 (Menhattan Similarity) -> 사각 격자 최단 거리 = L1 거리 자카드 유사도 (Jaccard Similarity) -> 교집합과 합집합의 크기로 계산 두 문장이 주어졌을 때, 두 문장이 서로 얼마나 유사한지 나타내주는 기법 아래에서 입력값으로 받는 Sentences는 ["Hello World", "Hello Word"] 형식이다. ### 코사인 유사도 ### def cos_performance(sentences) : tfidf_vectorizer = TfidfVecto..
2022.06.02 18:26 -
자동매매봇 제작기
예전에 주식도 해보고 코인도 해봤었는데, 정보도 없이 사람의 머리로 생각하고 손으로 거래하다보니 결과적으로 잃는게 더 컸던 것 같다. 이득보면 욕심이 생기고, 손해보면 언젠간 오르겠지란 생각으로는 못 벌겠다고 느꼈었고 접었었다. 다시 코인판이 올라오면서 봇을 돌려버리면 내가 설정한 조건 안에서 안전하게 수익을 창출할 수 있지 않을까해서 간단한 자동매매 프로그램을 만들었었고, 백테스팅을 통해 결과를 따져보고 만원으로 테스트기간을 가졌었다. 일단, 주식판은 정보도 많이없고, 이미 여러 알고리즘과 전략, 정보들과 인공지능 모델을 통해 프로그램이 많았기에 생각하지 않았고, 코인한번 해보니 주식보단 코인이 재밌었었다. 코인판은 24시간 돌아가기에 여러 조건 따져서 자동매매 프로그램 돌려버리기에 좋을 것 같다고 생..
2021.08.18 20:10 -
depthwise separable convolution(깊이별 분리 합성곱)
SeparableConv2D 입력 채널별로 따로따로 공간 방향의 합성곱 수행 후, 1*1 합성곱 (점별 합성곱)으로 출력 채널을 합치는 것. 이로 인해 공간 특성의 학습과 채널 방향 특성의 학습을 분리하는 효과를 얻을 수 있음. 모델 파라미터와 연산의 수를 크게 줄여주어 더 작고 빠른 모델을 제작할 수 있음. 여기서 1 * 1 합성곱이란, 1 * 1 크기의 Convolution Filter 사용한 Convolution Layer를 말하는데, Channel / Spatial의 특성파악에 도움이 된다. 이렇게 1*1 합성곱을 쓰면 파라미터 수가 확연히 줄게 된다. 일반적으로 합성곱에서 channel을 크게 주면 파라미터 수가 급격히 증가하는데, 1*1 합성곱을 사용하면 효율적으로 모델을 구성할 수 있음. 즉..
2021.07.07 14:29 -
[Python] 똥피하기_ 고전게임 제작
pygame을 이용한 똥피하기 게임입니다. 키보드를 이용하여 캐릭터를 움직여서, 설정된 시간 동안 계속해서 떨어지는 똥을 피하는 게임입니다. 이전에 게임을 제작해보고 싶어서 만들어본 최초의 프로젝트였고, 여러가지 pygame 프로젝트 중 처음으로 만든 최초의 프로젝트입니다. 캐릭터의 이미지와 배경은 사진을 가져와 그림판으로 사이즈 조절을 하였습니다. 아래는 전체코드입니다. #하늘에서 떨어지는 똥 피하기 게임 #[조건] #1) 캐릭터는 화면 가장 아래에 위치, 좌우로 이동가능 #2) 똥은 화면 가장 위에서 떨어짐, X좌표는 매번 랜덤으로 설정 #3) 캐릭터가 똥을 피하면 다음 똥이 다시 떨어짐 #4) 캐릭터와 똥이 충돌하면 게임이 종료 #5) FPS는 30으로 고정 #[게임이미지] #배경 : 480* 64..
2021.01.09 16:39 -
[CNN] Dogs vs Cats
캐글(Kaggle)에서 데이터셋을 전부 다운받고, small폴더를 만들어서 train data, validation data, test data를 강아지와 고양이 각각 1000장, 500장, 500장을 분리해 총 4천장에 사진 데이터를 가지고 실습을 하였다. 그리고 가져온 사진 데이터들을 네트워크에 넣기 위해 부동 소수 타입의 텐서로 전처리 한다. 케라스에서 제공되는 ImageDataGenerator은 이미지 파일을 전처리된 배치 텐서로 바꾸어주는 제너레이터를 만드는 클래스이다. 즉, 사진 파일을 읽고, 타입을 RGB 픽셀 값으로 디코딩하고, 부동 소수타입의 텐서로 변환하여 픽셀값의 스케일을 0~255에서 0~1로 조정하는 과정을 쉽게 만들어주는 명령어이다. 모든이미지를 float형으로 255로 나누어 ..
2021.05.13 12:54 -
Neural Style Transfer
What is NST? Style transfer란, 두 영상(content image & style image)이 주어졌을 때 그 이미지의 주된 형태는 content image와 유사하게 유지하면서 스타일만 우리가 원하는 style image와 유사하게 바꾸는 것을 말함. Style transfer refers to changing only the style to the style image we want while keeping the main form of the image similar to the content image when two images are given. Style Transfer, image-to-image translation, 또는 texture transfer 등으로 불리는..
2021.10.07 15:31 -
[Kaggle] 간단한 HousePrices 예측해보기
2주 전에 캐글문제 하나 풀고싶어서 주택가격예측 대회에 들어갔다. 들어가서 그냥 평균값으로만 전부 때려박으면 몇점나올까 궁금해서 해봤더니 0.4점나오길래, 1점이 만점이 아닌가 봤더니 0점에 근접할 수록 높은 점수였다. 아 그렇구나 하고 종료했었는데, 원래 하던거 끝난 기념으로 3시간동안 노래들으면서 끄적여봤다. import numpy as np import pandas as pd import os for dirname, _, filenames in os.walk('./house_prices'): for filename in filenames: print(os.path.join(dirname, filename)) train_data = pd.read_csv('./house_prices/train.csv'..
2021.08.13 16:24 -
[CNN] HeatMap
저장된 CNN 모델을 가져와서 이를 사용해 이미지의 필터를 먼저 시각화 해보았다. 그리고 고양이사진을 하나 가져와서 이를 전처리하여 출력하였다. img_path = './dogs-vs-cats/small/test_dir/test_cats_dir/cat.1700.jpg' from keras.preprocessing import image import numpy as np img = image.load_img(img_path, target_size=(150, 150)) img_tensor = image.img_to_array(img) img_tensor = np.expand_dims(img_tensor, axis=0) # 모델이 훈련될 때 입력에 적용한 전처리 방식을 동일하게 사용합니다 img_tensor ..
2021.06.12 10:32 -
[GAN] 적대적 생성 신경망 <숫자생성AI> 제작
숫자 생성 인공지능 원리 생성 신경망 중 GAN을 이용함. GAN (Generative Adversarial Network) 적대적 생성 신경망. 2개의 신경망으로 이루어져 있음. 판별자 신경망과 생성자 신경망. 생성자는 진짜같은 가짜를 생성함. 판별자는 진짜그림과 생성자가 만든 가짜 그림을 구별 가능. 두 신경망은 목표가 있음. 생성자 : 판별자가 자신이 만든 그림을 진짜처럼 생각할 정도의 그림을 그림. 판별자 : 생성자가 만든 그림을 진짜인지 가짜인지 전부 구별해야함. 이제 두 신경망은 서로 이기기 위해 학습을 시작함. 이렇게 두 개의 신경망을 사용하여 이러한 원리로 생성해 내는 기법이 GAN(적대적 생성 신경망)임. 개발 환경 세팅 from keras.models import Model, Seque..
2021.02.21 17:26 -
Computer Graphics
------------------------- OpenGL로 배우는 컴퓨터그래픽스의 내용을 정리하였습니다. 두 벡터가 수직이면 내적의 값은 0. 외적의 값은 1. 전면 : 법선 벡터가 시점을 향한 면 후면 : 멀어지는 방향 법선벡터 면. 절단 - 물체면 중 가시 부피 내부에 존재하는 면만 걸러내는 작업. (4차원 절단 좌표계에서 일어남) Ø 3차원 정규화 장치 좌표계에서 절단하면 시점 뒤쪽 물체 처리 시 오류 발생해서. 은면제거 - 앞면에 가려서 보이지 않는 부분 제거 후면 - 면이 서있는 방향 때문에 보이지 않는 면. 시점에서 멀어지는 방향의 법선벡터 지닌 면. 절단알고리즘 3개 - 코헨-서더런드 n 물체 좌표를 기준으로 절단한다는 점에서 물체 공간 알고리즘. n 이웃코드에 의해 절단 연산속도 높인 것..
2020.12.07 00:01 -
간단한 자연어 분석
1. 각 라벨별 가장 많이 나오는 단어 찾기 from collections import Counter import pandas as pd df = pd.read_csv('train.csv') uniqueLabel = df['label'].unique() for Label in uniqueLabel: temp_df = df[df['label'] == Label] words = ' '.join(temp_df['sentence']).split() word_counts = Counter(words) most_common_word = word_counts.most_common(5) print(f"'{Label}'에서 가장 많이 나오는 단어: {most_common_word}") 2. 각 라벨 별 분포도 체크 im..
2024.01.05 09:15 -
[논문리뷰]Distributed Representations of Words and Phrases and their Compositionality
Distributed Representations of Words and Phrases and their Compositionality Mikolov, Tomas, et al. "Distributed representations of words and phrases and their compositionality." Advances in neural information processing systems 26 (2013). Abstract (Eng.) The recently introduced continuous Skip-gram model is an efficient method for learning high-quality distributed vector representations that cap..
2022.02.20 21:07 -
Computer Architecture 3
3.1) 5ED4-07A4의 결과는 무엇인가? 이 두수는 부호없는 16비트 16진수이다. 결과를 16진수로 구하고 계산과정을 보여라. 5ED4(16)을 이진표현으로 바꾸면 0101 1110 1101 0100(2) 이다. 07A4(16)을 이진표현으로 바꾸면 0000 0111 1010 0100(2) 이다. 이 두 수의 차를 연산하면 0101 0111 0011 0000(2)이다. 이를 16진수로 바꾸면 5730(16) 이다. 3.6) 185와 122가 부호없는 8비트 십진 정수라고 가정하라. 185 - 122를 계산하라. 오버플로 또는 언더플로인가? 아니면 둘 다 인가? 십진수 185와 -122를 합하면 63(10)이 나온다. 이는 이진수로 바꾸면 0011 1111이고, 1.11111 * 2^5이므로 오버플..
2021.04.02 22:51 -
[Linux] 10
- Telnet 텔넷이란 한 컴퓨터에서 다른 컴퓨터의 서버에 접속하여 작업을 할수 있도록 해주는 것으로, 정보를 제공해주는 서버와 그 서버를 사용하기위한 클라이언트로 이루어져있다. - Telnet 접속 시 문제점과 보안 방법 데이터를 암호화 처리하지 않고 패킷이 그대로 전송되기에 보안에 문제점이 있다. SSH(Secure Shell) 같은 암호화해서 데이터를 전달하는 데이터 전송 원격 접속장치를 사용한다. - OpenSSH OpenSSH란(Secure Shell)은 텔넷의 보안문제를 해결하고 강화해주는 서버이다. 데이터 전송간에 암호화를 하여 보안성이 강화시켜준다. - X윈도우 환경에서 Telnet 서버의 설치 및 운영 방법 a) dpkg -l xinetd, dpkg -l telnet 데몬패키지 리스트 ..
2021.01.21 22:35 -
[Linux] 3
- 리눅스 설치 방법과 필요성 윈도우와 설치 방식은 똑같다. OS를 설치하기 위한 iso파일을 인터넷에서 다운받아 USB 메모리에서 부팅할 수 있도록 USB에 담아놓는다. 여기서 사용되는 USB는 부팅가능한 설치 USB를 뜻한다. 이 과정이 끝나면 데스크탑에 BIOS 설정 화면으로 진입하여 부트설정에서 USB부팅 설정을 한다. 이러면 리눅스를 설치할 수있다. 만약 다른 OS환경에서 리눅스를 같이 설치하여 사용하고 싶으면, VM을 설치하여 가상머신 속에서 ios파일을 설치하면 된다. 서버운영을 하기에 있어서 최적화된 OS인 유닉스와의 높은 호환성, 무료 OS, 높은 품질과 기술지원, 다양한 배포 패키지 등 여러이유로 리눅스가 필요하다. - 파티션의 개념과 주 파티션, 논리 파티션, 확장 파티션 파티션이란 ..
2021.01.13 22:55 -
[논문리뷰]Are Prompt-Based Models Clueless?
Kavumba, Pride, Ryo Takahashi, and Yasuke Oda. "Are Prompt-based Models Clueless?." arXiv preprint arXiv:2205.09295 (2022). 2022년도 5월에 ACL에서 나온 논문입니다. 주제는 Prompt-based Models도 Superficial Cues를 사용하는지, 사용한다면 악용하여 일반화 성능이 떨어지게 만들지는 않는지 분석하여 확인하는 논문입니다. (참고자료) DiceLab SangHun Im
2022.08.29 21:32 -
DBLP DataSet Processing / 대용량 Json 파싱
그래프 임베딩을 공부하기 위한 DataSet으로 DBLP로 정하고 이를 가져와보았다. https://www.aminer.org/citation AMiner www.aminer.org 이 곳에 들어가서 이 데이터를 가져와서 다운로드를 받았다. 그런데 문제는 이 데이터를 가져와서 전처리를 해야하는데 용량이 16.1GB 이다.. 웬만한 에디터로 열리지도 않는 데이터를 처리해야해서 막막했었다. 그래서 생각한 것이 데이터를 용량을 정해서 자르고, 자른 코드를 수작업으로 조금만 손봐주자고 생각하였다. 내가 사용한 프로그램은 GSplit 3 이다. 여기서 가져온 DBLP Json파일을 가져와서 1GB씩 먼저 잘랐다. 이렇게 되면, 딕셔너리로 자르는 것이 아닌 용량으로 자르기에 Json 형식이 깨지게 된다. 따라서, ..
2022.01.12 17:58 -
Neural Style Transfer - Project
2021.10.07 - [Hi/Artificial_Intelligence] - Neural Style Transfer Neural Style Transfer What is NST? Style transfer란, 두 영상(content image & style image)이 주어졌을 때 그 이미지의 주된 형태는 content image와 유사하게 유지하면서 스타일만 우리가 원하는 style image와 유사하게 바꾸는 것.. forbetterdays.tistory.com 기존의 NST 모델 공부에서 한단계 더 깊게 하여 프로젝트에 사용하였습니다. What is NST (Neural Style Transfer)? - Style transfer란, 두 영상(content image & style image)이..
2021.11.20 23:57 -
[gym] CartPole-v0
import gym import time env = gym.make('CartPole-v1') #강화학습 환경 불러오기 for i_episode in range(20): # 새로운 에피소드(initial environment)를 불러온다(reset) observation = env.reset() for t in range(100): env.render() #화면에 출력 / 행동 취하기 이전 환경에서 얻은 관찰값(obsevation)적용해서 그림 time.sleep(0.05) # 행동(action)을 취하기 이전에 환경에 대해 얻은 관찰값(observation) print('observation before action:') print(observation) action = env.action_space...
2021.05.17 23:24 -
Computer Architecture 1
1.3) C와 같은 상위 수준 언어로 작성된 프로그램을 컴퓨터 프로세스가 바로 수행할 수 있는 표현으로 바꾸는 과정을 설명하여라. C와 같은 상위 수준 언어를 작성하고, 이 것을 컴파일러를 통해 어셈블리 언어로 번역한다. 이를 어셈블러가 2진수로 바꾸어주어 컴퓨터 프로세서가 프로그램을 수행할 수 있게 만들어준다. 1.5) 동일한 명령어 집합을 가지고 있는 3개의 다른 프로세서 P1, P2, P3의 클록석도와 CPI는 다음과 같다. a)어느 프로세서의 성능이 가장 좋은가? 초당 명령어 수로 표현하여라. 동일한 명령어 집합을 가졌다고 하였으니 명령어 수가 같다고 볼 수 있다. 초당 명령어 수를 x라하면 각각의 CPU 실행시간은 이렇게 볼 수 있다. P1의 실행시간 = (1.5(CPI) * x) / 3GHz ..
2021.04.02 22:49 -
[백준] 10단계 문제 모음
10단계. 재귀 재귀함수를 다뤄 봅시다. 1 10872 팩토리얼 재귀함수를 만들어서 제출해야한다. import java.util.Scanner; public class Main { static int factory = 1; public static int fac(int num) { if(num ==0) return factory; else{ factory *= num; return fac(num-1); } } public static void main(String[] args) { Scanner scan = new Scanner(System.in); int x = scan.nextInt(); fac(x); System.out.println(factory); } } 2 10870 피보나치 수 5 이 문제 ..
2021.02.04 21:14 -
[TensorFlow] 숫자 인식 AI 제작 (2)
colab.research.google.com/drive/1vcBfl192NDGJ2_c2u01tAa65NGSJmrw8?usp=sharing Google Colaboratory colab.research.google.com 원문입니다. 코랩으로 보는거 추천. (이전글) 2021/01/28 - [Hi/AI] - [TensorFlow] 숫자 인식 AI 제작 (1) # 모델설계 4개의 층으로 만들거임. 입력층, 은닉층, 은닉층, 출력층 입력층 뉴런의 수는 28 * 28이니 784임. 28 * 28개의 픽셀로 이루어진 숫자를 한줄로 바꾼거임. 첫번째 은닉층의 노드 수는 512개, 두번째 은닉층의 노드 수는 256개, 세번째 결과층의 노드수는 10개로 설정함. (마지막은 0~9이니 10개) 활성화 함수는 렐루(Re..
2021.01.30 14:55 -
[TensorFlow] 숫자 인식 AI 제작 (1)
colab.research.google.com/drive/1vcBfl192NDGJ2_c2u01tAa65NGSJmrw8?usp=sharing Google Colaboratory colab.research.google.com 원문입니다. 코랩으로 보는거 추천. %tensorflow_version #텐서플로우 라이브러리 설치되어있는지 확인. import keras 케라스는 텐서플로를 이용하기 더 쉽게만들어주는 도구임. 심층 신경망을 만들기 위한 텐서플로, 테아노, CNTK와 같은 도구를 더욱 쉽게 사용할 수 있게 도와주는 도구임. 따라서 케라스를 사용하려면 먼저 텐서플로 라이브러리를 불러온 상태여야함. from tensorflow.keras.models import Sequential from tensorfl..
2021.01.28 21:19 -
[Linux] 9
- 일반 프로세스와 데몬 프로세스의 차이 일반 프로세스는 컴퓨터에서 연속적으로 실행되는 프로그램으로, 사용자가 커널에 의해 실행을 하면 실행이 되고, 실행이 끝나면 종료되는 프로세스이다. 데몬 프로세스는 리눅스 커널에 의해서 실행되고, 대기상태에 있다가 특정한 서비스를 요청하면 실행해주는 프로세스이다. - 프로세스의 종류와 기능 (데몬, 부모, 자식, 고아, 좀비 프로세스) - 데몬(daemon) 프로세스 리눅스 커널에 의해 실행되고, 대기 상태로 있다 서비스를 요청하면 실행해준다. - 부모(process) 프로세스 자식 프로세스를 만드는 프로세스로, 부모 프로세스를 기반으로 자식 프로세스가 상속된다. - 자식(child) 프로세스 부모 프로세스에 의해 만들어지는 프로세스로 부모 프로세스와 계층적 구조를..
2021.01.18 23:24 -
[Linux] 7
- 셀의 세가지 주요 기능 a) 셀은 키보드와 화면(표준 입출력)을 통해 User와 대화하는 interface 기능을 제공한다. b) 셀은 강력한 프로그래밍 언어의 기능을 지원한다. c) 셀은 각 사용자마다 작업 환경을 원하는대로 맞추어 설정할 수 있는 기능을 제공한다. - 표준 입출력 장치 표준 입력 장치는 키보드로, 셀이 작업할 때에 필요한 정보들을 입력받는 장치이다. 표준 출력 장치는 모니터로, 실행 결과를 출력해주는 장치이고, 표준 오류 장치 또한 모니터로 오류 메시지를 출력하는 장치이다. - '>' 사용 시 기존 파일의 내용을 겹쳐 쓸 수 있다. 방지하기 위한 방법 set명령어를 사용해 noclobber에 option을 - 해준다. -noclobber는 -C와 같다. ex) set -o nocl..
2021.01.18 23:12 -
[Linux] 4
- Vi 에디터에서의 환경 변수 해당 프로세스를 실행시키기위해 참조하는 변수. 시스템의 속성을 기록하는 변수. 새로운지역환경변수 -> 환경변수=환경변수내용 새로운전역환경변수 -> export 환경변수 = 환경변수내용 vi ~/.bashrc 으로 환경변수 등록 명령어 추가하면 자동적으로 등록되고 실행됨. vi 에디터로 작성하는 파일안에서는 set 명령을 사용하면 환경변수가 적용된다. - Vi 에디터에서 .vimrc 파일의 기능 및 설정 방법 vim은 vi의 기본 명령어를 사용하며 유저가 따로 추가한 여러 기능들을 사용할 수 있는 편집기로, vimrc에 설정값을 적어놓으면 그 설정값처럼 vim 편집기가 적용된다. vimrc는 vim의 기능추가 및 설정파일이다. cd로 홈디렉토리로 간다음 vi .vimrc를 ..
2021.01.13 22:59 -
[Linux] 1
- 소프트웨어의 종류 및 개념 소프트웨어의 종류는 System Software과 응용소프트웨어로 나뉜다. 시스템소프트웨어는 기본적으로 가장 필수적인 소프트웨어로, 컴퓨터를 작동시키고 관리하며, 프로그램을 보다 효율적으로 실행할 수 있는 환경을 제공한다. 응용소프트웨어는 간단히 말하면 운영체제에서 실행되는 대부분의 소프트웨어를 뜻 한다. 어떠한 사용 목적으로 제작된 소프트웨어이다. - 운영체제의 기능 운영체제 즉 Operating System의 기능으로는 메모리, 파일, 데이터, 자원, 프로세스 등을 효율적으로 관리하며, 입출력과 기억장치도 관리한다. 사용자가 요청한 작업들의 중요도를 순서로 따져 효율적으로 작업할 수 있게 관리하는 스케줄링 기능도 있다. - 운영체제의 목적 운영체제의 목적으로는 사용자에게..
2021.01.13 22:48 -
[CG]시점변환
키보드를 입력하여 카메라의 시점을 바꾸는 코드입니다. #include static float C_x, C_y, C_z = 2; static int rotateX = 0, rotateX_ = 0, rotateY = 0, rotateY_ = 0, rotateZ = 0, rotateZ_ = 0; void InitLight() { GLfloat mat_diffuse[] = { 0.5, 0.4, 0.3, 1.0 }; //GLfloat는 변수 타입명 설정하는것. GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 }; GLfloat mat_ambient[] = { 0.5, 0.4, 0.3, 1.0 }; GLfloat mat_shininess[] = { 15.0 }; GLfloat li..
2021.01.05 21:24 -
[CG] 태양계 모델링
OpenGL로 만든 태양계 모델링입니다. 아래는 전체 코드입니다. #include //#include //#include static int Day = 0, Time = 0; void MyDisplay() { glClear(GL_COLOR_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glColor3f(1.0, 0.3, 0.3); glutWireSphere(0.2, 20, 16);//태양그리기 glPushMatrix();//태양기준 좌표계 스택에 푸시하여 저장 glRotatef((GLfloat)Day, 0.0, 1.0, 0.0);//회전 glTranslatef(0.7, 0.0, 0.0);//이동 glRotatef((GLfloat)Time, 0.0..
2021.01.05 21:16 -
[Python] 인스타 크롤링 / 이미지다운
아래는 전체코드입니다. from urllib.request import urlopen from urllib.parse import quote_plus from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.keys import Keys import time #import pyautogui baseURL = 'https://www.instagram.com/' plusURL = input('입력 : ') url = baseURL + quote_plus(baseURL) #############################################로그인 driver = webdriver.Chrome(..
2021.01.05 20:52 -
[HackerRank] Solve Java
2. Java If-Else import java.io.*; import java.math.*; import java.security.*; import java.text.*; import java.util.*; import java.util.concurrent.*; import java.util.regex.*; public class Solution { private static final Scanner scanner = new Scanner(System.in); public static void main(String[] args) { int N = scanner.nextInt(); scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?"); if (N%2 != 0) {Sys..
2021.01.04 19:43 -
[python] 백과사전
전체코드는 아래와 같습니다. import urllib.request import urllib.parse from bs4 import BeautifulSoup import os baseURL = 'https://dict.naver.com/search.nhn?dicQuery=' #네이버백과사전링크 while True : inputURL = input('검색할 단어 : ') if inputURL == '그만' : break mixURL = baseURL + urllib.parse.quote_plus(inputURL) #한글로 쓰면 아스키코드로 자동 변환 html = urllib.request.urlopen(mixURL).read() #url링크 가져와서 읽음 soup = BeautifulSoup(html, '..
2020.12.29 20:34