All
21 posts
파이썬 VSCODE & 아나콘다 가상 환경 설정

😊 파이썬 VSCODE & 아나콘다 가상 환경 설정 1. VS code 확장팩 아래의 것을 Extension 에서 설치할 것 다 몸에 좋은 것들이니까 일단 한 번 잡숴봐. Python Python type hint Python extended Python Docstring Generator Path Autocomplete indent-rainbow 2. 가상환경 설정 및 저장 1. 로 가상환경 개수 확인 가능 2. 로 가상환경 제작 가능 test 라는 이름의 환경을 파이썬 3.7 로 제작해 만들겠다! 만든 가상환경에 접속하기 / 나오기 가상환경에 들어가면 앞 부분에 괄호가 뜬다 3. 가상환경에서 패키지 설치하기 해당 링크에서 검색 가능 가상환경에 들어간 뒤 링크에 나온 코드 붙여넣기 4. 패키지 정리 env.yml yml 파일은 어떤 패키지들이 들어가는지 알려주는 확장자 파일이다. 파이썬 말고도 flutter 나 JS 등 의존성 패키지 등을 알려주는 역할을 하니까 다음…

January 15, 2023
python
선형대수와 넘파이

선형대수 기초 및 numpy 적용 행렬의 계산, 종류, numpy 내부 메서드를 다룬다. 1. 행렬의 계산 행렬 행렬 + 행렬 스칼라 * 행렬 : 각 자리마다 스칼라를 곱한다 행렬 * 행렬 A 의 열 값과 B 의 행 값이 같아야 한다 → A의 행 , B의 열 을 가진 새로운 행렬 탄생 dot product / 내적 이라고도 표현한다. 그림을 보면, A(4,2) 와 B(2,3) 이 만나 (4,3) 이 된다. 곱은 이렇게 이루어진다. GIF 2022-08-08 오후 1-32-17.gif 다음의 계산을 2 x 2 번 반복해서 2열 2행의 값이 나온다, 2. 행렬의 종류 전치 행렬 : 행과 열이 바뀐 행렬 전치행렬의 성질 영행렬 R 은 실수(real) 단위 행렬 : 대각선만 1인 행렬 기호는 I, E 둘 다 쓴다. 대각 행렬 : 대각선만 특정 수로 채워진 행렬 (특정 수는 행마다 다를 수 있음. ) 3. matmul 과 dot 의 차이 → 다시 말해서 : 맨 마지막 …

January 10, 2023
python
Re 정규화 라이브러리 사용법

Re 1. 기초 문법 [ ] 이 안에있는건 그대로 들어간다 [a-zA-Z] 알파벳 전부 [0-10] 숫자 전부 [.?,!] 이건그냥 쓴거 그대로를 의미한다 a.b 여기서 .은 모든 문자를 의미함 대신 문자가 하나라도 들어는 가야함 a* b 이거는 바로 앞 문자 a 가 무한대로 반복된다는 의미 이건 a가 0번 반복되는것도 포함이다 ca* b 이런것도 a 만 포함하는거다 c는 제외다. ca+t 이거는 최소 1번 이상은 반복해야 한다 {} 이거는 반복횟수 고정 a{m,n} 이거는 a가 m~n번만 반복해야 한다. 그런의미에서 a* 는 a{0,} 와 같고 a+ 는 a{1,} 와 같다 특정 반복수 n 은 a{n} 으로 하면 된다 ? 는 {0,1} 을 의미한다. ca?t 은 a가 없거나 1번만 있으면 된다. ^ 문자열의 처음 , ^python : 무조건 시작이 python 이어야 함 문자열의 마지막 python $ \d 숫자와 매치 \D 반대 \s 공백과 매치 [ \t\n\r\f\v] 와…

June 01, 2022
python
정보 이론에 대해서

정보이론 Information Theory 머신러닝의 이론적 토대를 이룬다. 목차 정보이론의 이해 Entorpy KL divergence 0. 정보이론의 이해 정보이론이란 추상적인 ‘정보’ 라는 개념을 정량화, 구체화 하는 분야이다. 자 이런 두 개의 바구니에서 정보의 양이 더 많은 쪽은 어디일까? 왼쪽이다. 나올 수 있는 경우의 수가 더 많기 때문이다. 이건 다시말해서, 나올 수 있는 확률이 더 많다는 뜻이다. 그렇다면 왼쪽은 그대로 두고, 오른쪽 바구니에 빨간색 공 하나를 추가한다면? 그럼 파란색 공이 뽑힐 확률은 줄어들고 빨간색 공이 뽑힐 확률이 새로 생길 것이다. 이 두가지 중에서는 빨간색 공이 뽑힐 확률이 더 적다. 정보량은 확률을 가진 것 중에서도 적은 확률일 수록 높다. Goodfellow, Bengio, Courville의 책 Deep Learning에는 정보를 정량적으로 표현하기 위해 필요한 세 가지 조건이 설명되어 있다. 일어날 가능성이 높으면 정보량이 적다, 일…

May 22, 2022
STUDY
활성화 함수란?

활성화함수, 데이터를 죽여살려? 영어로는 activation 함수라고 한다. 활성화 되었다? => 어떤 조건을 만족시켰다. 라는 뜻. 신경망 속의 퍼셉트론 perceptron 혹은 node 도 ‘특정조건’ 이 갖춰지면 ‘활성화’ 된다. 특정 조건 이란 어떤 임계치를 넘었냐 넘지 않았느냐로 구분된다. 예를 들어 시그모이드 함수가 있다. 활성화 함수 시그모이드 의 예 만약 출력값이 0.5 이상이면 활성화 된것으로 보고, 그 미만이면 비활성화 라고 생각 했을때, 시그모이드 함수는 입력값이 0 이하일때는 비활성화 0 이상일 때만 활성화로 만들어 준다. 시그모이드 함수는 무조건 출력이 0 에서 1 사이니까 이진 분류에 용이하다. 0 혹은 1에 수렴하기 때문이다 딥러닝에서 활성화 함수를 쓰는 큰 이유는 딥러닝 모델의 표현력 을 향상시켜주기 위해서이다. 다른 말로 representation capacity expressivity 를 향상시킨다고 한다. 만약에 y = wx + b 라는 모델이 …

May 20, 2022
STUDY
정규화 정칙화 차이

정규화(라고 다같은 정규화가 아니다) Regularization : 정칙화라고 불리며, 오버피팅을 해결하기 위한 방법 중의 하나 Regularization 기법들은 모델이 train set의 정답을 맞히지 못하도록 오버피팅을 방해(train loss가 증가) 하는 역할을 합니다. 그래서 train loss는 약간 증가하지만 결과적으로, validation loss나 최종적인 test loss를 감소시키려는 목적 (이건 오버피팅 방지) Normalization : 정규화라고 불리며, 이는 데이터의 형태를 좀 더 의미 있게, 혹은 트레이닝에 적합하게 전처리하는 과정 (이건 전처리) 예를 들어 데이터를 z-socre 변환 0 과 1 사이 값으로 분포 조정 이게 Lasso 방식이고 이게 Ridge 방법 기존 방법보다 축은 위로 쫌 이동했지만 기울기가 좀 줄었다 이 두 방식은 Regularization 다시말해 오버피팅을 방지한 것이다 , L1 Regularization을 사용할 …

April 21, 2022
STUDY
인공지능 기초 레이어 이해하기

딥러닝 네트워크를 구성하는 레이어, 이게 뭘까? ANN : artificial NN 인공신경망 딥러닝은 y = Wx + by=Wx+b 에서 최적의 과 를 찾는 과정! 레이어 로 이루어져 있는데. 레이어 : 하나의 물체가 여러개의 논리적인 세부 객체로 구성되어 있는 경우, 그 내부 객체를 이르는 말 Linear Convolutional Embedding Recurrent 이렇게 있음 레이어들이. Fully Connected Layer, Feedforward Neural Network, Multilayer Perceptrons, Dense Layer… 등 다양한 이름으로 불리지만 그 모든 것들은 결국 Linear 레이어에 해당 선형 대수학의 선형변환 (Linear Transform) 과 동일한 기능을 한다. 축소만 하는 방식 한번 증가(2,3) 시켰다가 축소시키는 방식 파라미터를 늘리면 (2,3) (3,1) (4,1) = 13 일때 더 많은 데이터를 보존할 수는 잇겟지만 하면 3…

April 21, 2022
STUDY
pre-trained 모델 가져오는 링크

미리 학습된 딥러닝 Pre-trained Deep Learning 사용처 요즘 핫한 만큼 다양한 연구와 기법이 발전되고 있다 DNN 딥 뉴럴 네트워크 더 좋은 딥 네트워크를 만들기 위해 많은 종류의 네트워크가 생겼다. 그 중 몇 가지 사전학습된 pre-trained Network 는 TF 나 Pytorch 등의 프레임워크 차원으로 지원하고 있다. 우리는 그 많은 모델들을 훑어볼 건데 특히 ResNet 과 VGG 를 중심적으로 볼 거다 Image Net 2010년 ILSVRC 2010 을 시작으로 대량의 이미지 데이터셋 만 개가 넘는 카테고리에 100만 장 규모의 사진을 가지고 있다. 이걸 통해 많은 사람들이 이미지 분류 콘테스트에 나가 네트워크를 형성했다. AlexNet 2011년 이미지넷 챌린지 1등 모델. 논문저자의 이름을 땄다. CNN 구조의 확장판이다. 2개의 GPU 로 병렬연산을 수행하기 위해 병렬구조로 설계되었다. 자세한 내용 LeNet 이건 이때 생긴건 아니지만 19…

April 21, 2022
STUDY
Keras 딥러닝 모델

🌠 Tensor flow V2 라이브러리를 이용해 딥러닝 모델 생성하기 Tensor flow V2 버전에서 딥러닝 모델 작성 방법에는 크게 3가지가 있다. Sequential Functional : sequential 의 일반화된 개념 Model Subclassing : 클래스로 구현된 기존 모델을 상속받아 자기 모델 만들기 순차적으로 어떤 차이가 있고, 어떤 식으로 제작하는지 알아가보자. 1. Sequential Model epochs : 모델로 데이터를 학습할 횟수 batch_size : 데이터를 소분해 넣을 양 model = keras.Sequential() 을 활용하면 딥러닝 모델을 쌓아 나갈 수 있다. 입력부터 출력까지 순차적(시퀀셜) 으로 add 하면 된다. but, 모델의 입력과 출력이 여러개인 경우에는 적합하지 않다. (반드시 입력 1개 출력 1가지 여야 함) 2. Functional API model 에 ketas.Model 이 들어간다. 이것은 우리가 danse …

April 21, 2022
STUDY
VGG16

딥러닝모델 VGG-16 🚶🏽‍♂️ 오늘 구현한 모델은 VGG-16 이다. 목차 데이터 불러오기 VGG-16 생성 본인의 과업에 맞게 VGG-16 개선 이 모델은 미국에서 진행한 이미지 인식 대회 ILSVRC 에서 2014년 준우승을 한 모델이다! (물론 지금은 더 좋은게 많이 있다) 하지만 계속 발전되는 Deep Learning 모델을 이해하기 위해선 기본적인 구조를 갖춘 VGG-16 의 모델 이해가 필요하다. 본 게시글에서는 VGG-16 를 Tensorflow 라이브러리에서 불러와 사용하는 방법을 제시한다. 모델 사용에는 tensorflow 실습 데이터인 를 사용했다. VGG 16 불러오기 18층으로 구성되어 있다. 해당 사이트에서 전문적인 내용을 다룬다. 자세한 내용을 보시려면 이 모델은 해당 그림을 구현하고 있다. 그림의 세 번째 파란상자를 보면 fully nected 라고 되어있는데, fully connected layer 의 오타이다. 순방향 신경망을 의미한다. 18층으로 …

April 21, 2022
STUDY
인공지능 기초 사진 분류 프로그램 맛보기

인공지능 기초 🚶‍♂️: 사진 분류 프로그램 맛보기 강아지 & 고양이 분류 프로그램 제작 ! Content 데이터 불러오기 (Tensor Flow) 데이터 전처리 모델 생성 (자체 생성 모델) 학습 및 평가 시작하기에 앞서, 이번 게시글은 전체적인 인공지능 적용에 대한 맥락을 설명하기 위한 글입니다. 아주 간단한 Deep Learning Layer 몇 종류를 이용했습니다. tensor flow 에서는 다양한 데이터셋을 이미 제공하고 있다. 강아지고양이, 음성, 이미지, 텍스트 데이터셋 보유하고 있으니 세부 내용 확인해보고 싶음 해보기 tensor flow link “WARNING:absl:1738 images were corrupted and were skipped”라는 경고가 나타날 수 있습니다. 우선 무시하시면 됩니다. 1738 장의 사진은 쓸 수 없다는 뜻입니다. 이런 것들은 tf 사이트 데이터셋 설명에서 확인 가능합니다 PNG 1738이 currupted 되어있다 되어있져? 그리…

April 21, 2022
STUDY
임베딩이란

임베딩이란..? 단어를 표현하기 위해서는 적어도 1차원에서는 안된다 (의미가 담기기엔 작다) 그래서 벡터의 특정 차원을 직접 만들어 의미를 직접 mapping 해야 하고, 이를 희소 표현 (Sparse Representation) 이라고 한다. 반면에 그냥 차원은 일정하게 256차원 이렇게 정해놓고 유사한 맥락에서 자주 나오는 단어들은 의미가 비슷하다고 판단하는 방식을 분포 가설 (distribution hypothesis) 이라고 한다. 그리고 이 가설을 통해 분산표현 (distribution Representation) 이라고 한다. 맥락이라 함은 단어 좌우에 함께 위치하는 단어를 의미한다. 분산표현 은 희소표현 과 달리 단어 간 유사도를 구할 수 있다. embedding 레이어라는 것은 이 단어의 분산표현을 구현하기 위한 레이어!!!!!!!!!!!!!!!!!!!!!! 우리가 단어를 n 개 쓸거야~ k차원으로 구현해조~ 하면 컴퓨터가 n x k 형태의 분산표현 사전을 만든다. …

April 21, 2022
STUDY
EDA 라이브러리 사용법

numpy pandas matplob 조지기 데이터 전처리 좋은 데이터 분석을 위해서는 EDA 가 필수. Explotatory Data Analysis 데이터 예제 포켓몬 도감 이 데이터는 721 포켓몬의 수, 이름, 타입(두개까지), 기본스텟(HP, 공격력, 방어력, 필살공격력, 필살방어력, 속도) 를 포함하고 있습니다. 이 data 는 카드 or 포켓몬 고 가 아니라 포켓몬 게임 data입니다. 관련 내용은 Descipt 에서 확인해 볼 수 있습니다. 정말 중요한거 당신이 데이터를 다루고 싶다면, 그게 어떤 데이터를 어떻게 담고 있는지는 무조건 확인을 해봐야 한다. 1. 열어나 보기 가장 첫 항에는 순서별 속성을 나타내 주고 있고 그 밑에는 데이터가 있는 csv 데이터이다 2. 라이브러리 준비하기 csv 데이터를 잘 다루기 위해 필요한 라이브러리이다. Numpy (배열) Pandas (행렬) Seaborn (시각화) Matplot (시각화) os (경로설정) 다른건 잘 아시…

April 19, 2022
STUDY
Regression 회귀

선형회귀 목차 분류와 회귀 로지스틱 회귀 (Logistic Regression) SoftMax / Cross Entrophy 오늘날 회귀분석이란 단순히 평균으로 수렴하는 현상을 넘어서서, 두 개 이상의 변수 사이의 함수관계를 추구하는 통계적 방법을 의미하게 됩니다. 선형 회귀분석(linear regression) 두 변수 사이의 관계를 직선 형태로 가정하고 분석 선형 회귀분석을 해볼만하겠다 싶은 기본가정 내에 들어오면 분석을 해보면 된다. 선형성 독립성 (다중 회귀분석 시) (독립변수 x들 간에 상관관계가가 없는 성질) 등분산성 (분산이 일정한지) 정규성 (잔차가 정규분포를 띄는지) 분류와 회귀가 다른 점 분류 : 해당 데이터의 class Y 를 추론 (a일지 b일지) 추론 회귀 : 해당 데이터 y의 정확한 값(2.45, 17.2874 등) 을 추론 회귀분석은 독립변수 x 로 종속변수 y 의 상관관계를 모델링한다. 독립변수 x 가 하나면 단순회귀분석 여러개면 다중회귀분석 이라고 한…

April 18, 2022
STUDY
NLP 전처리 필수 Vecorize

Vectorize contexts BoW DTM 코사인 유사도 TF-IDF 가중치 LSA 특잇값 분해 LDA soynlp 응집확률 브랜칭 엔트로피 자연어 처리에서 꼭 필요한 텍스트 데이터의 Veoctorization 중에서도 통계와 머신러닝 사용하는 방법의 변천사에 대한 설명이다. 토큰화하는 방식은 Word2vec 임베딩 모델이 생기기 전 정통적인 Vectorize 방식이었다. 현재는 Word2vec 기술을 사용하지만 단어를 학습시키기 위한 Vectorize 기술의 초기 개념을 이해하여 NLP 의 이해를 심화하도록 한다. 컴퓨터는 단어를 이해하지 못한다. 때문에 단어를 숫자 데이터로 표현하여야 한다. 하지만 단순히 단어를 1, 2, 3, 4.. 로 표현한다면 단어간의 차이를 정확하게 나타내지 못할 것이다 그러기 위해 vectorize 라는 기술이 생겨났다. 단어를 적절한 숫자 데이터로 변경하는 기술을 의미한다. 다음은 이 vectorize 의 문제점과 그 해결책을 발전 순서대로 나…

March 25, 2022
STUDY
SentencePiece Tokenizer 사용 방법

🙄 네이버 영화리뷰 감성분석에 SentencePiece 적용해보기 Contexts 1. READY 2. GAME 3. POTG (best Play Of The Game 1. Ready 1-1. 오늘의 Exp와 Rubric SentencePiece 는 Google 에서 제공하고 있는 Tokenizer / Detokenizer 이다. Tokenize 란 NLP 에서 중요한 부분인 ‘단어사전 제작’ 을 의미한다. 직관적으로 생각했을 때, 단어사전은 단어별, 형태소별, 혹은 그 사이 어떤 경계를 나누어 만들 수 있다. Sentencepiece 는 BPE 와 unigram 이라는 두 가지의 분리 방법을 통해 subword tokenizing model 을 제공하고 있다. 최근 pretrained model 은 대부분 SentencePiece 를 Tokenizer 로 설정하는 추세이기에 NLP 분야 tokenizer 의 표준이라고 표현해도 과언이 아니다. 오늘은 이러한 Sent…

March 23, 2022
STUDY
NLP 에서 데이터 전처리 및 토큰화란

우리는 많은 문장들 속에서 살아간다. 한국어, 영어, 일본어, 중국어,, 영어 배워라 배워라 스트레스 받는것도 다 언어가 존재하기 때문이다. 이렇게 일상에서 사용하는 언어를 자연어(Natural Language) 라고 부른다. 반면에 우리가 쓰는 프로그래밍 언어는 기계어 또는 인공어(Artificial Language) 라고 부른다. (엄연히 따지면 자연어 안에 인공어가 속한다) 프로그래밍 언어는 자연어보다 훨씬 명료하고 처리하기에 용이하여야 하므로 자연어와 다르게 문맥과 상관없이 항상 동일한 의미를 가진다. 우리는 자연어를 처리해야 하기 때문에 사람이 하는 방식대로는 즉, 문맥을 이해하는 방식으로는 기계를 학습시키기가 어렵다. 때문에, 단어들을 숫자로 매핑해 표현하는 머신러닝 기법 을 사용한다. 그렇다면 각 단어들의 의미를 기계들도 이해하고 연산할 수 있을 것이다. 해당 블로그에서는 그렇게 수치화된 단어들간의 계산을 시도해 볼 수 있다. 이와 함께 단어를 어떻게 구분할 것인지(형…

March 15, 2022
STUDY
파이썬 함수 병렬 처리

빅데이터 핸들링의 필수, 병렬 컴퓨팅 동시성과 병렬성 동시성 : Concurrency 병렬성 : Parallelism 멀티 태스킹에는 위의 2가지 방식있다. 동시성 : 하나의 processor 가 남는 시간동안 다른 task 를 동시에 수행 다시말해, 특정 순간에는 1가지 task 를 하겠지만, 다음 task 로 넘어가는데 시간이 걸리게 되면 다른 task 를 수행하도록 한다. 병렬성 : 여러 processor 가 각자 task 를 동시에 수행 다시 말해, 병렬성을 가진 processor 가 동시성을 가지고 일할 수 있다. 예를 들어, 라면을 조리하려면 물을 끓여야 하는데. processor 는 불을 켜고 물이 끓기를 기다려야 한다. 이처럼 대기해야 하는 상황을 ‘bound’ 상태 라고 한다. bound 상태에 그저 대기만 하고 있는 방식을 Syncronzized, 동기 방식이라고 한다. bound 상태에 다른 일을 처리하는 방식을 Asynchronous 비동기 방식이라고 한다. …

February 23, 2022
python
추천시스템

🤴 Deep Learning 이용 분야 - 추천 시스템 내 구글 아이디로 로그인 한 다음 유튜브에 들어가면 내가 보고싶은 영상들을 너무 누르고 싶게 보여준다 youtube.PNG 단순하게 생각해볼 수 있다. 아, 내가 지금까지 봤던 영상들을 기반으로 내가 보고싶어할 영상을 띄워주는구나. 여기서 봤던 영상들을 기반으로 에서 딥러닝 기법이 사용될 수 있다. 1. 추천시스템이란? 업계 내 용어를 빌리자면 에게 을 제공하는 시스템. 우리는 의 정보와 의 정보를 가지고 있다 예를 들어 user 성민 이 있다고 한다면 성민 : 25살 / 남성 / 인천 / 학생 / 인디음악선호 아무리 간단해도 나이, 성별, 지역 등 여러 개의 정보를 가질 수 있다. item ‘Star is Born’ 이라는 영화가 있다고 한다면 ‘Star is Born’ : 인기도 5 / 액션도 5 / 로맨스 8 / 음악 10 / 리뷰평점 4.5 / 등의 정보를 가질 수 있다. 이 user 와 item 의 정보를…

February 21, 2022
STUDY
파이썬으로 딥러닝 모델 제작하기

1. 🌠 Depp Learning 모델 생성 방법 세가지 Tensor flow V2 버전에서 딥러닝 모델 작성 방법에는 크게 3가지가 있다. Sequential Functional : sequential 의 일반화된 개념 Model Subclassing : 클래스로 구현된 기존 모델을 상속받아 자기 모델 만들기 순차적으로 어떤 차이가 있고, 어떤 식으로 제작하는지 알아가보자. 1. Sequential Model epochs : 모델로 데이터를 학습할 횟수 batch_size : 데이터를 소분해 넣을 양 model = keras.Sequential() 을 활용하면 딥러닝 모델을 쌓아 나갈 수 있다. 입력부터 출력까지 순차적(시퀀셜) 으로 add 하면 된다. but, 모델의 입력과 출력이 여러개인 경우에는 적합하지 않다. (반드시 입력 1개 출력 1가지 여야 함) 2. Functional API model 에 ketas.Model 이 들어간다. 이것은 우리가 danse 나 Flatte…

February 19, 2022
STUDY
저를 찾아오신 분들께 드리는 말

👋 소개 안녕하세요, 모든 사람들의 더 나은 삶과 행복을 꿈꾸는 Oha 입니다! 저는 2021년 12월부터 모두의 연구소 산하기관 “Aiffel” 에서 파이썬과 이를 이용한 딥러닝 인공지능에 대해 배우고 있습니다. 인공지능 관련 라이브러리 Tensorflow를 주로 사용합니다. 저는 전혀 코딩을 접해보지 않은 비전공자 입니다. 경영학과를 재학 중입니다. 코딩과 프로그래밍에 대한 지식들이 일반사람들에게 널리 퍼지면서, 개발 분야로의 꿈과 열정을 가지게 된 분들이 많아진 것 같습니다. 저 또한 사람을 돕는 인공지능에 매력을 느껴 더 나은 기술 더 나은 삶을 만들기 위해 공부중입니다. 🖐 그러나 , 요즘 다양한 국비지원교육과 마케팅이 활발해지면서, 개발과 프로그래밍에 대한 막연한 환상을 품는 학생이 종종 보입니다. 인터넷 상에서 되풀이되는 모든 말들이 거짓이라 할 수는 없지만, 개발과 코딩을 접하지 않아본 사람들이 분별있는 판단을 하기엔 제대로 된 지식을 구하기가 어렵습니다 ! 비전공 …

February 14, 2022
회고