일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 앱개발공부
- BottomTabBarNavigator
- ReactNative
- Flutter
- 플러터앱개발공부
- OpenWeatherApi
- 선언형프로그래밍
- 명령형프로그래밍
- 플러터앱개발
- Navigation
- RectQuery
- BottomTabNavigation
- 앱개발
- Flutter공부
- 화면이동
- 모두의딥러닝
- 플러터
- react
- 플러터공부
- 정보보호
- date-fns
- Object~
- tabBarBadge
- 날짜포맷팅
- 면접을위한CS전공지식노트
- 하단탭바알림
- 웹해킹
- 알고리즘
- 딥러닝
- 데이터베이스의기본
- Today
- Total
기록하기
충격! 그 자체! 인공지능, 머신 러닝, 딥러닝, 텐서플로, 케라스, 실습해보기 본문
인공지능(AI)란 무엇일까요?
인공지능은 인간의 지능을 모델링하고 구현하는 컴퓨터 시스템과 관련된 학문이다. 인공지능은 컴퓨터 프로그램을 사용하여 인간의 학습, 추론, 추정, 지식, 판단 및 자기 개선 능력 등과 같은 지능적인 기능을 모방하고 구현하는 것을 목표로 한다. 이러한 기술은 기계 번역, 음성 인식, 이미지 인식, 자율 주행 자동차, 추천 시스템 등 다양한 분야에서 사용되고 있으며, 현재 많은 연구가 이루어지고 있다.
머신 러닝이란 무엇일까요?
머신러닝(machine learning)은 컴퓨터 프로그램이 데이터를 기반으로 스스로 학습하고 예측하는 능력을 갖도록 하는 인공지능의 한 분야입니다. 머신러닝은 통계학, 컴퓨터 공학, 인공지능 등 다양한 분야의 기술들을 활용하여 데이터를 분석하고 패턴을 찾아내며, 이를 바탕으로 새로운 데이터에 대한 예측을 수행합니다. 머신러닝은 크게 지도학습(supervised learning), 비지도학습(unsupervised learning), 강화학습(reinforcement learning)으로 구분됩니다.
딥러닝이란 무엇일까요?
딥러닝(deep learning)은 인공신경망을 이용한 머신러닝의 한 분야로, 다층 신경망(multi-layer neural networks)을 사용하여 복잡한 문제를 해결하는 데에 사용됩니다.
딥러닝은 인간의 뇌 구조에서 영감을 받아 만들어진 인공신경망 구조를 사용하여, 데이터를 입력층에서부터 다층의 은닉층을 통해 출력층으로 전달합니다. 이 과정에서 각 층은 입력층에서부터 점차적으로 더 복잡한 특징을 추출하게 됩니다.
딥러닝은 이러한 다층 신경망의 깊이(depth)가 깊어질수록 높은 수준의 추상화(abstraction)을 가능하게 하여, 이미지, 음성, 자연어 처리 등 다양한 분야에서 높은 성능을 보여주고 있습니다. 딥러닝은 컴퓨터 비전, 음성 인식, 자연어 처리, 게임 등 다양한 분야에서 사용되며, 특히 이미지 인식, 자율주행 자동차, 음성 인식 등에서 높은 성능을 보여줍니다.
딥러닝의 학습에는 대량의 데이터와 연산량이 필요하며, 이를 위해 GPU와 같은 병렬처리 기술이 활용됩니다. 딥러닝의 발전과 함께 다양한 딥러닝 라이브러리와 프레임워크가 개발되어 있어, 상대적으로 쉽게 딥러닝 모델을 구성하고 학습할 수 있습니다.
텐서플로와 케라스의 차이점은?
공통점 : 텐서플로(TensorFlow)와 케라스(Keras)는 둘 다 딥러닝 모델을 구축하고 학습시키기 위한 오픈소스 라이브러리입니다.
차이점 :
텐서플로
Google에서 개발하고 있는 딥러닝 라이브러리로, 딥러닝 모델을 구축하고 학습시키는 데 필요한 다양한 기능을 제공합니다. 텐서플로는 C++, Python, Java 등 다양한 언어를 지원하며, 분산처리와 GPU를 이용한 병렬 처리 기능도 제공합니다.
케라스
딥러닝 모델을 더 쉽고 간편하게 구현할 수 있도록 도와주는 라이브러리입니다. 케라스는 딥러닝 모델을 빠르게 구현할 수 있도록 간단한 API를 제공합니다. 케라스는 백엔드로 텐서플로, MXNet, CNTK 등 다양한 딥러닝 라이브러리를 지원합니다. 케라스는 딥러닝 모델의 구성과 학습 방법을 간편하게 설정할 수 있도록 도와주므로, 딥러닝 입문자나 빠른 프로토타이핑을 위해 많이 사용됩니다.
따라서, 텐서플로와 케라스는 목적에 따라 선택되어 사용될 수 있습니다. 텐서플로는 딥러닝 모델을 더 깊고 복잡하게 구현할 수 있으며, 케라스는 더 간단하고 빠르게 딥러닝 모델을 구현할 수 있도록 도와줍니다.
코랩으로 실습해보기
- 파이썬 코딩으로 구하는 최소 제곱
import numpy as np
# 공부한 시간과 점수를 각각 x, y라는 이름의 넘파이 배열로 만들기
x = np.array([2, 4, 6, 8])
y = np.array([81, 93, 91, 97])
# x의 평균값 구하기
mx = np.mean(x)
# y의 평균값 구하기
my = np.mean(y)
# 출력으로 확인하기
print("x의 평균값: ", mx)
print("y의 평균값: ", my)
# 기울기 공식의 분모 부분
divisor = sum([(i - mx)**2 for i in x])
# 기울기 공식의 분자 부분
def top(x, mx, y, my):
d = 0
for i in range(len(x)):
d += (x[i] - mx) * (y[i] - my)
return d
dividend = top(x, mx, y, my)
# 출력으로 확인하기
print("분모: ", divisor)
print("분자: ", dividend)
# 기울기 a 구하기
a = dividend / divisor
# y 절편 b 구하기
b = my - (mx*a)
# 출력으로 확인하기
print("기울기 a = ", a)
print("y 절편 b =", b)
출력 값
- 파이썬 코딩으로 구하는 평균 제곱 오차
import numpy as np
# 가상의 기울기 a와 y 절편 b 정하기
fake_a = 3
fake_b = 76
# 공부 시간 x와 성적 y의 넘파이 배열 만들기
x = np.array([2, 4, 6, 8])
y = np.array([81, 93, 91, 97])
# y = ax + b에 가상의 a 값과 b 값을 대입한 결과를 출력하는 함수
def predict(x):
return fake_a * x + fake_b
# 예측 값이 들어갈 빈 리스트
predict_result = []
# 모든 x 값을 한 번씩 대입해 predict_result 리스트 완성하기
for i in range(len(x)):
predict_result.append(predict(x[i]))
print("공부시간=%.f, 실제점수=%.f, 예측점수=%.f" % (x[i], y[i], predict(x[i])))
# 평균 제곱 오차 함수를 각 y 값에 대입해 최종 값을 구하는 함수
n = len(x)
def mse(y, y_pred):
return (1/n) * sum((y - y_pred)**2)
# 평균 제곱 오차 값 출력하기
print("평균 제곱 오차 : " + str(mse(y, predict_result)))
출력 값
'AI 수업' 카테고리의 다른 글
[모두의 딥러닝] 피마 인디언의 당뇨병 예측 실행 (0) | 2023.04.10 |
---|---|
[모두의 딥러닝] 히트맵 그리기 (0) | 2023.04.10 |
뉴런과 퍼셉트론의 차이 (0) | 2023.03.27 |
선형회귀, 로지스틱회귀! (1) | 2023.03.24 |
참지 못한 내용, 충격! 누구나 반드시 봐야 할 AI 역사 & 취업 업계 동향 (0) | 2023.03.06 |