본문 바로가기

전체 글90

[Python] List Comprehension mat = [[1,2,3],[4,5,6],[7,8,9]] new = [x for a in mat for x in a] print(new) 안녕하세요! 이번 글에서는 파이썬에서 한 리스트에서 다른 리스트를 만들어내는 간결한 문법인 List Comprehension에 대해 알아보려 합니다. 먼저 리스트 컴프리헨션 분법을 사용하면 알고리즘을 작성할 때 파생되는 자료 구조를 쉽게 생성할 수 있습니다. a = [1,2,3,4,5] b = [x**2 for x in a] a라는 리스트에 있는 각 숫자의 제곱을 계산한다고 하면, b와 같이 계산을 수행할 수 있습니다. map과 달리 리스트 컴프리헨션을 사용하면 입력 리스트에 있는 아이템을 간편하게 걸러내서 그에 대응하는 출력을 결과에서 삭제할 수 있습니다. map은 .. 2022. 11. 23.
[Python] PEP 8 스타일 가이드 PEP8(Python Enhancement Proposal #8)은 파이썬 코드를 일관성 있게 작성하여 유지보수와 가독성에 도움을 주는 가이드입니다. 오늘은 PEP8에 대한 내용을 소개하려고 합니다. 자세한 내용은 아래의 링크에서 확인할 수 있습니다 https://peps.python.org/pep-0008/ PEP 8 – Style Guide for Python Code | peps.python.org PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Nick Coghlan Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01.. 2022. 11. 23.
[AI] 전이학습 | Cifar10 | MobileNetV2 안녕하세요! Foxy현입니다 오늘은 내가 직접 모델을 작성하는 것이 아닌, 공개된 모델을 가져와 사용하는 전이 학습(Transfer Learning)에 대해 알아보겠습니다 먼저 Transfer Learning(전이학습)이란 나의 데이터를 학습시키기 위해 공개된 모델을 가져와 일부만 수정하여 학습시키는 것을 말합니다. 그런다고 모든 데이터를 내가 원하는 모델을 사용하여 학습시킬 수 있는 것은 아니고, 최대한 나의 데이터와 공개된 모델에 사용된 데이터와 유사한 데이터를 사용하는 것이 좋습니다 즉, 이미 학습된 모델에서 일부 Layer(weight)만 가져와 학습하는 것을 말합니다. 일반적으로 다음과 같은 과정을 거칩니다 학습된 기존 모델의 layers를 가져오기 Transfer learning 과정에서 기존.. 2022. 11. 23.
[AI] MNIST 데이터 사용하여 신경망 배우기 안녕하세요! 오늘은 딥러닝계의 Hello World와 같은 MNIST 데이터를 사용하여 신경망에 대해 공부해보겠습니다. MNIST 데이터셋은 넘파이 배열 형태로 케라스에 저장이 되어 있습니다. import tensorflow as tf (train_X,train_Y),(test_X,test_Y) = tf.keras.datasets.mnist.load_data() train_X와 train_Y로 훈련 세트를 구성하며, test_X와 test_Y로 테스트 세트를 구성합니다. 데이터를 살펴볼까요? print(train_X.shape) # (60000,28,28) print(len(train_X),len(test_X)) # (60000,10000) plt.imshow(train_X[0],cmap='gray') .. 2022. 11. 7.
[AI] Perceptron 퍼셉트론은 다수의 신호를 입력 받아 하나의 신호를 출력합니다. 입력에 상수(가중치)를 곱해 전부 더한 값이 특정 값보다 크면 1, 아니면 0을 출력합니다. 여기서 특정 값은 임계값이라고 하며, theta로 나타냅니다. 위 내용을 아래로 나타내면 다음과 같습니다. 퍼셉트론은 입력 신호 각각에 고유한 가중치를 부여합니다. 가중치가 클수록 해당 신호가 그만큼 더 중요함을 나타냅니다. 그럼 퍼셉트론을 활용한 간단한 문제를 살펴보겠습니다. 위에서 퍼셉트론은 다수의 입력을 받아 하나의 신호를 출력한다고 했죠? AND 게이트를 예로 들면 2개 이상의 입력을 받아 하나의 출력값을 결정해줍니다. 이를 위해 할 일은 진리표대로 작동하는 x1,x2,theta의 값을 정하는 것입니다. 다음과 같은 그림을 파이썬으로 구현해보겠.. 2022. 11. 7.
[데이터베이스] 정규화 정규화란? 함수적 종속성 등과 같은 이론에 근거하여 관계형 데이터베이스 테이블의 삽입, 삭제, 갱신으로 인한 이상 현상 발생을 최소화하기 위해 좀 더 작은 단위의 테이블로 설계하는 과정. 즉, 데이터 모델을 정규형에 맞도록 고치는 과정입니다. 여기서 정규형은 정규화 결과에 의해 도출된 데이터 모델이 갖춰야 할 특성을 말합니다. 또한 함수적 종속성이란 테이블의 특정 컬럼 A를 알면 다른 컬럼 B를 알 수 있을 때, B는 A에 함수적 종속성이 있다고 합니다. 정규화를 하게 되면 얻는 장점으로는, 상호 종속성이 강한 데이터 요소들을 분리, 독립된 개념(엔티티,테이블)로 정의하게 됨에 따라 유연성이 극대화됩니다. 개념이 조금 더 세분화됩니다 재활용 가능성이 더 높아집니다 중복이 최소화됩니다 정규화에는 제 1정규.. 2022. 10. 19.
[AI] K-Nearest Neighbors 직접 구현 K-Nearest Neighbor은 대표적인 분류 알고리즘입니다. 유사한 속성을 가진 데이터는 유사한 그룹에 속한다는 아이디어로 사용합니다. 위의 그림을 보면 모든 데이터는 1,2,3이라는 각각 다른 색상으로 분류되어있다. 하지만 새로 입력한 저 빨간 점에 대한 분류는 어떻게 하는 것일까? 이에 KNN이라는 알고리즘을 도입하게 됐는데, 간단히 요점을 나열하자면 유사한 데이터들끼리의 거리는 비교적 가깝다. 분류를 알 수 없는 새로운 데이터는 가장 가까운 이웃 k개의 분류를 확인하여 vote 한다 k의 개수가 너무 작으면 과대적합이 일어날 수 있다 k의 개수가 너무 많으면 과소적합이 일어날 수 있다 필요한 라이브러리 불러오기 import numpy as np import matplotlib.pyplot as.. 2022. 10. 19.
[데이터베이스] 데이터 모델 건축물을 설계하기 위해서는 설계도면이 필요하다. 그렇다면 데이터베이스를 설계하기 위해서는 무엇이 필요할까? 우리는 이 데이터베이스(건축물)를 만들기 위해 데이터모델(설계도면)을 필요로한다. 지금부터 데이터모델에 대해 알아보자 데이터모델 데이터 모델은 현실 세계를 데이터베이스로 구축할 수 있도록 추상화 한 것입니다. 다른 말로 익숙된 표기법에 의해 명확하고 단순하게 표현한 것입니다. 데이터 모델링 데이터베이스를 구축하기 위한 분석/설계의 과정으로, 개념적 데이터 모델링, 논리적 데이터 모델링, 물리적 데이터 모델링으로 총 3단계로 나뉩니다. 개념적 데이터 모델링 핵심 엔터티와 핵심 엔터티들 간의 관계를 정의하는 과정으로, 추상화 수준이 높고 업무 중심적임 논리적 데이터 모델링 모든 업무 요구를 충족하기 위.. 2022. 10. 14.
[데이터베이스] - 관계 대수 데이터 모델의 구성 요소로는 연산 + 데이터 구조 + 제약 조건이 있다고 했었죠. 관계형 데이터 모델은 관계 대수(연산) + 릴레이션(데이터 구조) + 무결성 제약 조건(제약 조건)으로 이루어진다고 했었구요. 잘 기억이 안 나시면 이전 글들 참고해주세요. 2022.10.04 - [AI, 빅데이터/Database] - Database - 데이터베이스 시스템 Database - 데이터베이스 시스템 이 글에서 다룰 내용 * 데이터베이스의 정의 및 특징 * 데이터 모델 * DB 관련 용어 "데이터베이스 : 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임" 쉽게 foxyprogramming.tistory.com 2022.10.11 - [AI, 빅데이터/Database] - [데이.. 2022. 10. 13.