AI 19

Bag of Words (BoW)란 ?

Bag of Words 란 단어들의 출현 빈도를 수치화한 표현 방법. def BoW(sentences): dict_bow = {} for sentence in sentences: split_sentence = sentence.split(" ") for word in split_sentence: if word not in dict_bow.keys(): dict_bow[word] = 1 else: dict_bow[word] = dict_bow[word] + 1 return dict_bow sentences = [ "빨간 사과 노란 바나나 초록 메론", "주황 오렌지 노란 바나나 빨간 자두" ] print(BoW(sentences)) #{'빨간': 2, '사과': 1, '노란': 2, '바나나': 2, '초록..

AI/데이터 분석 2024.02.24

활성화 함수

퍼셉트론의 활성화 함수(계단 함수), 신경망의 활성화 함수(시그모이드 함수) 대표적인 활성화 함수를 이용해 두 함수를 비교 해봅시다. 파이썬을 이용해 각 함수를 구현하면서 비교하겠습니다. 계단 함수 계단 함수는 0보다 크면 1 아니면 모두 0을 출력하는 함수입니다. def step_function(x): if x > 0: return 1 else: return 0 위 코드는 넘파이를 적용할 수 없어 아래 코드를 사용합니다. def step_function(x): y = x > 0 #bool 형태로 저장 return y.astype(np.int) #int로 형변환 해주면서 true=1, false=0 step_function(np.array([1.0, 2.1, -1.1])) #array([1, 1, 0])..

AI 2023.10.12

신경망이란

신경망이란 ? 신경망은 퍼셉트론과 달리 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습이 가능합니다. 신경망을 그림으로 봅시다. 가장 왼쪽을 입력층, 가장 오른쪽을 출력층, 중간 줄을 은닉층이라고 합니다. 전 포스팅에서 알려드렸듯이 이 신경망은 2층 신경망입니다. 그림을 봤을 때 퍼셉트론과 특별히 달라 보이지 않습니다. 먼저 퍼셉트론 식을 더 간결하게 해봅시다 위 식과 아래 식은 같은 일을 합니다. 갑자기 h(x) 라는 함수가 등장했죠 이 함수에 대해 알아봅시다. 활성화 함수의 등장 입력 신호의 총합을 출력 신호로 변환하는 함수를 활성화 함수 라고 합니다. 함수의 종류는 여러가지로 많이 존재합니다. 어떤 종류가 있는지 자세히 알아보기 전에 활성화 함수가 신경망에서 어떻게 처리되는지 그림으로 봅시..

AI 2023.10.10

퍼셉트론의 한계

1. 퍼셉트론의 한계 AND, NAND, OR 논리 회로는 구현이 가능했습니다. 그렇다면 XOR 게이트는 어떨까요 ? XOR 게이트는 베타적 논리합이라는 논리 회로입니다. ​ 단층 퍼셉트론(단순 논리 회로)으로 XOR 게이트를 만들 수 있을까요 ? 아래 그림을 보면 OR 게이트는 직선으로 0, 1을 출력하는 부분을 직선으로 구분할 수 있습니다. XOR 게이트는 OR 게이트처럼 직선 하나로 O, △ 를 나누는 영역을 만들지 못 할것 같습니다. 하지만 직선이 아니라 곡선으로 나눈다면 ? 단층 퍼셉트론은 직선 하나로 나눈 영역만 표현하는 것은 한계가 있습니다. 이를 해결하려면 단층 퍼셉트론이 아닌 다층 퍼셉트론이 필요합니다.

AI 2023.10.10

단순 논리 회로

1. 단순 논리 회로 퍼셉트론을 이용한 논리 회로를 알아보자 1.1 AND 게이트 AND 게이트는 입력값이 모두 1 이어야 1을 출력하고 이외는 0을 출력합니다. 이를 퍼셉트론을 이용해 설명한다면 어떻게 할 수 있을까요 ? 우리가 알고 있는 퍼셉트론은 입력값에 가중치가 곱해진 값이 신호로 전달되고 전달받은 신호의 총합이 특정 임계값을 넘으면 1 같거나 작으면 0을 출력합니다. ​ 입력값은 직접 정할 수 없으니 가중치와 임계값을 정해 AND 게이트를 만들어 보겠습니다. 일 때 AND 게이트가 만들어집니다. 이외에도 정답은 무수히 많습니다. 1.2 NAND 게이트, OR 게이트 NAND 게이트는 Not AND 게이트를 의미합니다. AND 게이트를 제외한 모든 경우를 1로 출력한다는 뜻이겠죠 ? 이번에도 가중..

AI 2023.10.10

이미지 데이터 증강 (Data augmentation)

어떤 모델이 됐던 데이터가 많아야 오버피팅을 피할 수 있음. Data augmentation은 원래 이미지를 변형해서 이미지 수를 늘리는 것임. 우리가 학습할 때 사용한 데이터들은 실제 상황에서 없을 수도, 없는 데이터가 있을 확률이 높음. 따라서 여러 다양성을 가진 데이터들이 있어야 일반화하기 좋다. Augmentation 유형 공간 / 픽셀 변형이 있음. 공간 : vertical, horizontal, center, random, rotate, translate ... 등 뒤집거나 돌리거나 픽셀 : bright, grayscale, blur, noise, gamma .. 등 밝게, 색상, 노이즈, 흐리거나 keras ImageDataGenerator 주피터 노트북으로 실습했습니다. import os ..

AI/컴퓨터 비전 2023.10.10

GoogleNet (InceptionNet) 정리해보기

Lenet-5를 이어 일반적인 CNN 구조가 정착됐다. 일반적인 CNN 구조라 하면 Conv-Layer > Normalication, Pooling > FC 구조이다. ImageNet과 같은 데이터 크기가 큰 경우 모델을 더 Deep하게 Layer 수를 늘리고 Dropout을 이용해 overfitting을 피하도록 했다. 점점 AI 기술이 모바일이나 임베디드 상에서 효율적으로 활용하기 위해 연산량을 줄이도록 하는 알고리즘을 개발하게 됐다. GoogleNet은 기존 AlexNet 보다 1/12 배의 연산량을 가진다. Inception Module을 사용하는 것이 그 이유인데, 모듈 구조를 살펴보자. 대표사진 삭제 Inception module 일단 여기서 가장 중요한 것은 1x1 Convolution 이다..

AI/컴퓨터 비전 2023.10.10

[인공지능 학습 HUB]

AI, 머신러닝, 딥러닝, 지도학습, 비지도학습 C++, OpenCV 4로 배우는 컴퓨터 비전과 머신러닝 ch02 Python, OpenCV 4로 배우는 컴퓨터 비전과 머신러닝 ch02 독립변수, 종속변수 따릉이 데이터 분석 K-Fold, Stratified K-Fold GridSearch Python, OpenCV 4로 배우는 컴퓨터 비전과 머신러닝 ch03 NMS IOU 왁물원 카페 크롤링 및 우왁굳즈 워드클라우드 GoogleNet (InceptionNet) 정리해보기 이미지 데이터 증강 (Data Augmentation) 단순 논리 회로 퍼셉트론의 한계 신경망이란

AI 2023.10.10

왁물원 카페 크롤링 및 우왁굳즈 워드클라우드

아직 완벽하지 않지만 제목, 작성자, 링크, 내용 크롤링은 전부 가능하고 버튼 연동만 해주면 된다. 이런식으로 크롤링된다. def extract_word(text): hangul = re.compile('[^가-힣]') result = hangul.sub(' ', text) return result 특수문자 제거하기 spacing = Spacing() !pip install git+https://github.com/haven-jeon/PyKoSpacing.git 다운 받고 띄어쓰기되어 있지 않은 문자열들을 전부 해준다. 완벽하게 되진 않음.. okt = Okt() words = " ".join(df['content'].tolist()) words = okt.morphs(words,stem=True) re..

AI/데이터 분석 2022.12.21

IOU : 모델이 예측한 결과와 실측 Box가 얼마나 정확하게 겹치는 가를 나타내는 지표

IOU : 모델이 예측한 결과와 실측 Box가 얼마나 정확하게 겹치는 가를 나타내는 지표 Detection 데이터 셋별로 IOU 임계값이 다르다. Pascal voc는 0.5, MS COCO는 0.5 ~ 0.95 의 여러가지 경우를 두고 제출하도록 한다. 위 그림은 예시이다. 만약 Pascal voc 데이터 셋에서 왼쪽 2가지 경우만 Detecte 성공이고 나머지 3가지 경우는 실패이다. import numpy as np def compute_iou(cand_box, gt_box): # Calculate intersection areas x1 = np.maximum(cand_box[0], gt_box[0]) y1 = np.maximum(cand_box[1], gt_box[1]) x2 = np.minimu..

AI/컴퓨터 비전 2022.12.04
728x90
반응형
LIST