1일 11월 4일
딥러닝과 챗봇은 무슨 연관이 있을까?
인공지능, 머신러닝, 딥러닝
AI > ML > DL
인공지능 : 보통의 사림이 수행하는 지능적인 작업을 자동화하기 위한 연구활동
지능적인 활동 : 추론/ 예측/ 분류
비 머신러닝은 무엇이 있을까?
개발자가 경험적인 방법으로 자신만의 노하우를 만드는 것!
머신러닝 이전까지는 프로그래머가 규칙을 직접 코딩하는, 학습 과정이 없는 방법론이 대세
-전문가 시스템
머신러닝 : 데이터로부터 학습하도록 컴퓨터를 프로그래밍하는 과학/기술
"어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상되었다면 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다.
프로그램이 최적의 문제 해결 규칙을 스스로 찾도록 구성된 알고리즘
학습
-> 오차를 최소화하기 위한 방법으로 한다.
모델 파라미터 값을 조금씩 변경한다.
기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제
전통적인 방식으로는 전혀 해결할 방법이 없는 복잡한 문제
유동적인 환경
머신러닝 시스템의 종류
대표적인 지도 학습 알고리즘
비지도 학습의 종류
다른 머신러닝 시스템과의 차이점
강화 학습의 예
가중치
학습
손실함수(비용함수, 목적 함수)
옵티마이저
딥러닝 작동 원리
오차를 작아지는 방향으로 가중치를 조정한다. 오차를 구해야한다. 출력층에 오차를 구해야한다.
은닉층에 오차는 모른다, 출력층에서 전파하고 전파하여 값이 바뀐다.
은닉층이 앞으로 갈수록 오차가 0에 가까워진다.
그레디언트 손실문제라고 한다.
이것을 해결한것이 2005년도에 발표된 역전파 알고리즘이다.
순환 신경망(RNN)우리가 자주볼 신경망
one to many -> 사진설명 붙이기
many to one -> 감성 분석
many to many -> 번역
챗봇은 문장을 받아서 해야하니까 단어들-> 단어들을 한다.
생성적 적대 신경망
생성자 네트워크 : 잡음으로부터 원본 데이터셋에서 샘플링한 것처럼 보이는 샘플 생성
판별자 네트워크 : 원본 데이터셋에서 추출한 샘플인지 생선자가 만든 가짜인지 구별
두 네트워크 간의 (적대적) 경쟁을 학습
얼마나 감쪽같은 샘플을 만드느냐 얼마나 가짜 샘플을 찾아 내는가
공부 환경
IDE :VsCode, PyCham, Jupyter Notebook, Jupter LabScikit-learn 필수 라이브러리
NumPy
SciPy
matplotilib
pandas
TensorFlow
Keras
거의 모든 종류의 딥러닝 모델을 간편하게 만들고 훈련시킬 수 있는 파이썬을 위한 딥러닝 플레임워크
멀티 백엔드 기반 파이썬 고수준 신경망 API
TenseorFlow의 기본 라이브러리로 편입
TensorFlow Vs. Keras
TensorFlow : XOR문제 해결을 위한 퍼셉트론
keras-> TensorFlow에 비해 좀 더 쉽고 간편하게 나온다.
WSL (Windows Subsystem for Linux)
마이크로 소프트 스토어에서 Windows PowerShell을 설치
관리자 권한으로 실행
우분투가 깔린 것을 알 수 있습니다.
리부트를 하면 우분투가 실행됩니다.
uname은 시스템에 대한 정보를 출력
-a 옵션은 시스템의 전체 정보를 확인
우분투 접속 후
whoami를 이용해 로그인 정보를 확인
pwd는 print working directory 명령어 입니다.
/는 위치를 표현
~는 tilde
`는 백틱
python 접속
깜빡이는 것은 커서
quit()를 통해 나간다.
root 계정으로 갈려면 권한이 필요로 한다.
리눅스 쉘
셸이란 커널과 사용자간의 다리역할을 하는 것으로 사용자로부터 명령을 받아 그것을 해석하고 프로그램을 실행하는 역할을 한다.
커널을 직접 사용하기에는 힘들다 그렇기 때문에 셸을 통해서 사용자가 편하게 사용이 가능하게 해준다.
커널을 감싸면서 ll, ls같은 명령어를 미리 저장해놓는다.
리눅스는 셸을 바꿀수 있다.
커널에 있는 폼을 마음대로 할 수 있다.
셸의 기능
1. 사용자와 커널 사이에서 명령을 해석해 전달하는 명령어 해석기 기능이 있습니다.
2. 셸은 자차 내에 프로그래밍 기능이 있어서 프로그램을 작성할 수 있습니다. 셸 프로그래밍 기능을 이용하면 여러 명령을 사용해 반복적으로 수행하는 작업을 하나의 프로그램으로 제작 할 수 있습니다. 셸 프로그램을 셸 스크립트라고 불러요
3. 사용자 환경 설정의 기능 - 초기화 파일 기능을 이용해 사용자의 환경을 설정할 수 있습니다. 로그인 할 때 이 초기화 파일이 실행되서 사용자의 초기 환경이 설정됩니다. 셸을 공부하는데 가장 중요한 것 중 하나가 환경변수의 이해입니다.
과거에는 사용자가 일일이 찾아야 했다.
그러다가 RPM이라는 것을 만들었습니다.
RPM 레드 햇 패키지 매니저
현재는 YUM이라는 것을 쓰고있는데 우분투의 경우는
APT를 사용하고 있습니다.
APT는 devian 계열로 리눅스 계열 설치, 삭제, 유지보수 같은 것을 자동으로 해주는 것입니다.
APT를 업데이트와 업그레이드 한다.
wget명령어를 통해 ca-certificates를 설치한다.
ssl을 설치
라이브 서버를 설치한다.
python3-pip 설치
오늘은 이것으로 수업이 끝이 났다. 환경설정에 많은 시간을 쏟은 것은 아쉽다.
내일은 교재로 공부가 시작된다. 인공지능이 약하기 때문에 씹어먹는 생각으로 공부하자
정말 유익한 정보네요 ! >_< b