-
인공지능을 활용한 자율비행 드론 프로그래밍 // Tello Drone
이번 주말은 인공지능을 통해 드론을 날리는 방법을 배운다. 우선 첫날은 드론을 컨트롤 하는 방법을 배웠다. 1. 드론이란 : 무인항공기를 일컫는 UAV(Unmanned aerial vehicle)로, 실제 조종사가 탑승하지 않고 원격에서 조정하거나 사전에 프로그래밍된 경로에 따라 자동 혹은 반자동으로 날아가는 비행체 오늘 사용할 드론은 Tello Drone이다. 2. Tello Drone : 중국의 DJI에서 교육용으로 제작한 드론 (무게가 80인 초소형 실내용 드론) - 자동 이륙.착륙, 배터리 보호, 페일세이프, 비전 포지셔닝 기능 지원 - 13분 비행시간 지원, 100M의 비행거리(지만 10M정도가 현실적), 720p HD 카메라 포함 단점은 작고 가볍기 때문에 발열이 심하지만, 장점은 와이파이를 ..
2023.09.23
-
딥러닝 활용 프로젝트 // 나이 예측앱, 백혈병 분류앱 만들기
오늘은 평일에 하는 마지막 오프라인 수업이다. 딥러닝을 활용하는 방법을 배웠다. AI를 연결하여 얼굴 인식 웹 앱을 만들고, 백혈병 분류하는 웹앱을 만들어보았다. [Part 1] 간단한 앱 만들어보기: 나이 예측 앱 얼굴 사진을 업로드하면 나이를 추정해주는 앱이다. HTML을 통해 웹으로 만들었다. 1. 앱 설계 프로세스 : 딥러닝 모델(설계/학습) → 모델 이식(앱 이식 여부) → 앱디자인(플랫폼) → 앱배포 (검수 및 최종 배포) 1) 딥러닝 모델 모델 파이프라인 구성: 원본 데이터 → 전처리된 데이터 → 모델 예측 2) 모델 이식 딥러닝 앱의 용량은 머신러닝에 비해 굉장히 크기 때문에 앱에 어떻게 연동시킬지, 연동시킬지 말지 여부도 고민할 필요가 있다. - 이를 해결하기 위한 방법 중 하나는 모델 ..
2023.09.20
-
컴퓨터비전을 활용한 자율자동차 AI 프로그래밍#2 // 동키카 데이터 수집 방법
오늘은 자율주행 동키카의 두 번째 날! 새로 배운게 있다기보다는 하루종일 데이터를 수집하고, 모델을 학습시키는 것을 반복했다. 그리고 오후 5시부터는 조별로 자율주행 시합을 했다. 어제 챙겨가지 못했던 usb c타입 변환 젠더를 가져가서 조이스틱으로 운전을 해봤다 근데 나와 팀원 둘다 조이스틱을 많이 사용해 본 사람이 아니라서 오히려 핸드폰으로 하는 것이 더 편했다. 조이스틱은 두 손 모두 움직여야해서 능숙하지 않은 상태에서 조종하려니까 너무 어려웠다. 근데 조이스틱이 익숙한 다른 팀들을 보니까 운전을 더 잘하긴 하더라... 경험해 봤을 때 동키가 자율주행 학습데이터 수집 꿀팁이 있다면, 1) 조이스틱에 능숙하면 조이스틱으로 할 것 (핸드폰보다 더 자연스럽게 운전 가능) 2) 정확하게 가운데 선을 기준으..
2023.09.17
-
[머신러닝] #3 정형데이터 전처리 실습 // 결측치 처리(평균, 최빈값), 정규화, missingno
오늘은 '위스콘신 대학의 유방암 진단 분류 데이터'를 가지고 데이터 전처리를 진행해 볼 것이다. 원래 문제없는 데이터인데, 실습을 위해서 여기저기 결측치 값을 일부러 만들었다. 정형 데이터에 대해서 결측치 처리하는 방법과 범주형 데이터의 정규화 등 데이터를 전처리하는 과정에 대해서 알아보자.전반적인 데이터 전처리 과정은 아래와 같다.1. 데이터 불러오기 2. Explorating 3. 결측치 처리: strategy(remove, imputation) 4. Scaling 5. Data Split 0. 라이브러리 불러오기import numpy as np import pandas as pd import matplotlib.pyplot as plt import sklearn import seaborn as sn..
2023.09.16
-
컴퓨터비전을 활용한 자율자동차 AI 프로그래밍#1 // 동키카로 데이터 수집, 처리, 저장, 학습
이번 주말은 자율주행차와 트랙을 직접 만드는 교육을 진행한다. 최종 1차 목표는 완주, 2차 목표는 가능하다면 속도를 조금이라도 빠르게 하는 것이다. 실제로 운전하고, 학습하고, 트랙도 만들고 하니까 엄청 재밌고 뿌듯한 하루였다!우리가 사용할 자율주행차는 동키카이다.[Part 1] 동키카, 자율주행차1. 동키카 (Donkey Car): RC카 기반의 본체에 라즈베리파이 보드를 통해서 카메라 기반의 이미지를 인식하여 조향장치를 조정하여 자율 주행이 가능 1) 동키카의 주행학습 사용자가 직접 운전 및 조종하는 것을 보고 학습하기에 처음부터 자율로 알아서 가는 게 아니다. - 카메라로 주행하는 데이터를 찍고, 뉴럴 네트워크를 통해서 차선이 어디인지 인식 - json과 jpg 파일로 저장, 서버에서 학습, - ..
2023.09.16
-
데이터 분석 워크숍(orange3 활용)#3 // 군집화, 앙상블 학습, 팀프로젝트
오늘은 오전에 잠깐 진도를 나가고, 이후부터는 하루종일 팀프로젝트를 진행하였다. 주말 동안 배웠던 내용을 바탕으로 데이터 선정부터 분석, 결론 도출까지 팀원들과 함께 했다. [Part 1] 앙상블 학습과 비지도 학습 1. 지도 학습 - 앙상블 학습 : 여러 모델을 사용해서 예측값의 신뢰도를 높이는 방법 1) 복원추출 Bagging (Bootstrap Aggregation) : 학습 데이터를 여러 개 만들어서 분류기 별로 모델을 학습하고, 학습된 분류기들의 결과를 수합하여, 예측결과를 판정 2) 부스팅 (Boosting) : 분류기들이 순차적으로 학습하여, 복원추출에 비해 높은 성능 3) 투표 (Voting) : 다수의 서로 다른 분류기를 생성하여 동일한 학습 데이터에 대해서 개별로 학습 (분류나 로지스틱..
2023.09.10
-
데이터 분석 워크숍(orange3 활용)#2 // 분류, 알고리즘, 회귀, 예측
오늘 하루종일 배운 게 너무 많아서 두 개의 글로 나눠 쓴다. 게다가 처음 배우는 내용이고, 진도가 꽤 빨라서 엄청 열심히 들었다. 나는 배운 내용을 정리하면서 실습을 하다 보니까 더 바빴던 것 같다. 그래도 확실히 이해에는 도움이 되는 듯! 그래도 매우 열심히 해서 뿌듯하고, 아침부터 밤까지 집중해서 힘들었는데도 은근 재밌었다. [Part 1] 지도학습 - 분류(classification) 1. 분류모델의 성능 측정하기 1) 측정 기준① - 정확도(Accuracy): 전체 데이터에서 제대로 예측한 비율 - 정밀도(Precision): 실제 모든 데이터 중에서 모델이 True라고 분류한 비율 - 재현율(Recall): 실제 True인 데이터 중에서 모델이 True라고 예측한 비율 2) 측정 기준② 목표:..
2023.09.09
-
데이터 분석 워크숍(orange3 활용)#1 // 기술 통계, 정규화, 범주화, 숫자형 및 범주형 변환
오늘은 주말 동안에 하루종일 진행하는 오프라인 수업 중 첫날이다. 이번 주말은 orange3을 통한 데이터 분석 워크숍이 진행된다. 오늘은 orange3을 활용하는 방법을 배우고, 내일은 팀별로 프로젝트를 하여 보고서를 쓰고 발표까지 하게 된다. orange3은 개발 언어를 사용하지 않는 비주얼 프로그래밍 방식을 사용한다. 그래서 머신러닝이나 데이터 분석 단계와 기법에 대한 이해가 더 빠르게 되고, 비교적 배우기 쉽다는 장점이 있다. [Part 1] 인공지능과 머신러닝의 이해 1. 인공지능의 7단계 발전 과정 Step1) 규칙기반 시스템 : 비즈니스 등에서 일반화된 업무 규칙 등을 사용해서 간단하고, 반복적인 업무들을 자동화 (로봇청소기, 업무용 RPA 등) Step2) 상황인지와 유지 : 특정 분야의 ..
2023.09.09
-
[머신러닝] #2 머신러닝을 위한 데이터 전처리 // 특성공학, 결측값, 범주형 변수 처리
오늘은 머신러닝을 위한 데이터 전처리 이론을 학습하였다. 다음 시간에는 오늘 배운 것을 활용하여, 실습을 진행할 것이다.[Part 1] 데이터 전처리란?1. 데이터 전처리와 특성 공학(Feature Engineering)과적합과 편향을 방지할 수 있도록 데이터를 분석함에 있어서 가장 중요한 부분이다. - 데이터 전처리: 분석 결과/인사이트와 모델 성능에 직접적인 영향을 미치는 과정 - 특성 공학: 컴퓨터가 잘 이해할 수 있도록 변수들의 형태를 변형하거나 처리하는 과정 2. 데이터 정제 (Data Cleansing): 레코드 세트, 테이블, DB에서 손상되거나 부정확한 레코드를 감지 및 수정하는 프로세스 1) 특징· 데이터의 불완전성, 부정확성, 비연관 데이터를 교체, 수정 삭제 · Data Wrangli..
2023.09.09
-
DX AI 산업 특강 // 챗GPT로 웹페이지 만들기
오늘은 처음으로 오프라인에서 수업을 하는 날이다. web basic, vs code와 챗gpt를 이용한 웹페이지 생성, gpt 활용 방법에 대해 배운다. 1. 웹개발이란 : 인터넷과 웹을 통해 웹 사이트를 만드는 일 - 웹프로그래밍, 웹 디자인, 웹 콘텐츠 개발, 클라이언트 사이드.서버 사이드 스크립트 작업 2. Web Micro Framework - Flask : 간결하게 유지하고 확장할 수 있게 만든 파이썬 마이크로 웹 프레임워크 - 폼과 데이터 베이스 처리 기능이 없어 리소소 사용이 가벼움 app.py: flask 실행 파일 - 웹 애플리케이션의 핵심부분 - 라우트, 에러 핸들러, 데이터베이스 설정, 뷰 함수 등을 정의 templates 디렉터리: HTML 파일을 저장 - 웹서버에서 페이지를 랜더링..
2023.09.07
-
[머신러닝]#1 머신러닝의 이해 // 데이터 종류, 스팸 필터, 머신러닝 특징
오늘은 주특기 과정 중에서도 머신러닝의 첫수업이다. 머신러닝에 대한 전체적인 개념과 이론에 대해 배운다. 1. 머신러닝의 개념 지능은 본능적이나 자동적으로 행동하는 대신에 생각하고 이해하여 행동하는 능력을 말한다. 즉, 인공지능에 접해봤을 때는 어떤 문제가 주어졌을 때, 합리적으로 사고하여 문제를 해결하는 능력이다. 머신러닝은 직역하면 '학습하는 기계'이다. 학습이란 반복적인 경험을 토대로 미지의 문제를 추론하고 틀린 것은 다시 연습하는 것이다. 예를 들어, 아기는 무엇이든 입어 넣어본다. 그러나 다양한 경험을 하면서 뽀죡하고 딱딱한 것은 입에 넣었을 때 아프기에 해서는 안되고, 달콤한 것은 맛있다는 사실 등을 깨닫게 된다. 그리고 이러한 학습을 기반으로 경험하지 않은 것도 판단이 가능하다. 초콜릿을 먹..
2023.09.05
-
[파이썬]#13 OpenAPI 크롤링 실습 // 서울 열린데이터 광장, 표와 그래프 만들기
오늘은 기본기 단계의 마지막 수업으로 OpenAPI를 사용하는 방법을 알아보자. 서울 열린데이터 광장은 회원가입만 하면 무료로 다양한 데이터를 활용할 수 있는 오픈API를 제공한다. 이전에 배운 크롤링 방법들을 사용하면 딱히 어렵지 않다. '서울시 병의원 위치 정보'와 '서울시 코로나19 백신 예방접종 현황' 두가지에 대한 데이터를 코랩으로 표와 그래프로 만들어 볼 것이다. 연구, 관리, 서비스 제공 등 서울시 시정활동 과정에서 수집된 다양한 데이터 존재 환경, 교통, 인구 등의 데이터, 보건 등 다양한 분야 데이터 존재 쉽게 검색이 가능하고 자유롭게 사용 가능하며, 재사용 가능 데이터에 대한 라이선스 정보를 함께 게시하고 있어 데이터 사용에 문제가 되지 않도록 함. 개인별로 Key를 발급 받아야함 저작..
2023.09.02
-
[파이썬]#12 동적 크롤링 실습 // 구독한 네이버 뉴스 크롤링
오늘은 네이버 뉴스로 동적 크롤링 실습을 진행했다. 확실히 정적 크롤링보다 실행 속도가 느리고, 뭔가 더 복잡하다... HTML을 아예 모르면 좀 헷갈릴 것 같다. (다행히 나는 인터넷활용 수업으로 HTML과 JavaScript를 배웠음!) 근데 자꾸하다보면 그냥 비슷한 반복 작업이라는 것을 알 수 있긴 하다! 동적 크롤링은 처음해보는 거라, 내가 구독한 신문사를 바꿔가며 몇번이나 다시 해봤다. 코드는 같은데 매번 다른 결과가 나오는 것이 신기하기도?! 단점은 뭔가 오류가 있으면 거의 처음부터 다시 실행해야한다는거... 동적 크롤링은 url만으로는 들어갈 수 없는 페이지에서 데이터를 가져올 때 사용된다. (들어가지더라도 url의 변화가 없는데도, 실시간으로 내용이 계속해서 추가되거나 수정되는 경우) 동적..
2023.09.01
-
[파이썬]#11 정적 크롤링 실습 // 네이버 뉴스, 서울특별시 코로나19 크롤링
오늘은 requests 모듈, BeautifulSoup 라이브러리, pandas 라이브러리를 이용하여 코랩에서 크롤링을 진행해볼 것이다. 우선, 네이버 웹사이트로 간단한 방법을 알아보자. 첫번째 실습은 서울특별시 코로나19 홈페이지에서 정보를 가져와, 표로 만들고, 엑셀로 저장하는 방법까지 실습해보자. 두번째 실습으로는 네이버 뉴스에서 어떤 키워드를 입력하면 기사의 제목들을 표로 불러올 것이다. [Part 1] 정적 웹크롤링 방법 예제 실습 1. (방법1) Requests 모듈 html 문서를 가져올때 사용하는 패키지 사용자 친화적인 문법을 사용하여 다루기 쉬우면서 안정성이 뛰어남 파이썬 기본 라이브러리에 포함된 urllib 패키지보다 자주 사용방법 · Colab에서는 이미 설치되어 있는 상태이기 때문에..
2023.08.31
-
#10 웹크롤링, Open API란?
다음 시간에 웹크롤링과 OpenAPI 사용 실습을 해볼 예정이다. 크롤링은 서울특별시 코로나 19 정보와 코로나 관련 네이버 뉴스에 대해, OpenAPI는 정부 공공데이터 포털과 서울 열린 데이터 광장에 대해 진행할 것이다. 우선 실습을 해보기 전에 무엇인지부터 배웠다. [Part 1] 웹크롤링 1. 웹이란? : World Wide Web(WWW)의 줄임말 참고로, 인터넷은 컴퓨터 네트워크 통신망을 의미하고, 웹은 그 인터넷상에서 동작하는 하나의 서비스이다. 1) 웹 브라우저 : 웹을 보기 편하게 해주는 소프트웨어 ex) 엣지, 크롬, 사파리 2) HTTP(Hypter Text Trasfer Protocol) : 클라이언트와 서버 사이에서 정보를 주고받기(문서 전송) 위한 규약 여기서 클라이언트란 브라우..
2023.08.30
-
#9 데이터 수집 이론 및 활용 // 사례, 데이터3법, 비식별화
오늘부터는 크롤링에 대해서 배운다. 저번 학기에 캡스톤디자인 전공 수업에서 프로젝트로 대학 신문기사를 크롤링해서 전송해주는 시스템을 만들었었다. 그래서 약간의 크롤링 경험이 있다고 볼 수 있지만, 정식으로 배운 적은 없고 그냥 여기저기에서 혼자 공부했었다. 그때는 야매(?)로 한거였으니까 이제 기초부터 차근차근 배워야지! 일단 실제 크롤링을 어떻게 하는지 배우기 전에, 데이터에 대한 개념부터 알아보자. [Part 1] 데이터 수집 이론 우선 데이터란 무엇일까? ▶ 데이터 (Data) · 모든 분석 혹은 활용가능한 디지털화된 자료이자 정보(신호, 기호, 문자, 숫자 등) · 의미 있는 정보를 모든 값으로, 사람이나 기계가 생성하고 처리하는 형태로 표시된 것 데이터에는 세가지 종류가 있는데, 1. 정형 데이..
2023.08.27
-
#8 파이썬 기초 6 // Pandas 라이브러리
드디어 파이썬 기초의 마지막 수업이다. Pandas는 처음 배우는거라 새로웠다. 몇번 연습해 봐야겠다! Pandas란? : R보다 학습이 쉽고, 성능이 좋은 데이터 분석용 라이브러리 (Numpy를 개량한 라이브러리) - Series : index, value - DataFrame : index, column, value 0. 라이브러리 불러오기 import pandas as pd import numpy as np 1.Series 동일한 데이터 타입의 값을 갖는다. 1-1. Series 선언 동일한 타입만 있을 경우 dtype이 나옴 데이터값이 각각 다른 타입 가능 참고) nunpy ndarray는 같은 타입만 가능 1-2. index 설정 꼭 딕셔너리 타입일 필요 없음 0부터 시작 1-3. Series ..
2023.08.27
-
#7 파이썬 기초 5 // Numpy 라이브러리
오늘은 파이썬에서 데이터를 다룰 때, 가장 많이 쓰이는 라이브러리 중 하나인 Numpy에 대해 배웠다. Numpy란? : 선형대수/통계 연산을 위한 라이브러리 (데이터는 행렬로 표현) 행렬 데이터 생성, 수정, 계산 등을 빠르게 처리해주는 패키지 선형대수학을 빠르게 연산 스칼라, 벡터, 매트릭스 머신러닝/딥러닝 연구에 필수적으로 사용 데이터 분석에서는 pandas가 많이 활용 되지만, 알고리즘 활용에 있어서는 numpy 패키지는 필수 0. Numpy 불러오기 # 라이브러리 불러오기 import numpy as np # numpy를 np로 줄여서 쓰겠다 1. array 생성 2. ndarray 한가지 데이터 타입만으로 사용이 가능 다른데이터 타입이 혼용되어 사용할 수 없다. 3. 데이터 수정 4. arra..
2023.08.27
-
#6 파이썬 기초 4 // 클래스, 예외처리, 매직 메서드
나중에 인공지능할 때, 많이 쓰이기 때문에 연습을 해야하는 파트라고 하셨다. 파이썬 기초는 이미 아는 거인지라, 얼른 지나갔으면... 재미가 없다 ㅎㅎ 근데 맨날 C하다가 파이썬을 너무 오랜만에 해서 그런지, 오히려 너무 편해서 어색하다. 1. class : 클래스 변수와 함수를 묶어 놓은 개념 클래스 선언 변수와 함수를 클래스 안에서 선언 클래스를 객체로 만들어서 클래스 안에 선언된 변수와 함수를 사용 1-1. 기본 클래스 1-1.1. 클래스 선언 1-1.2. 객체지향 실제 세계를 코드에 반영해서 개발하는 방법 여러명의 개발자가 코드를 효율적으로 작성해서 프로젝트를 완성시키지 위한 방법 설계도 작성(class) -> 실제 물건(object) 사용자 정의 데이터 타입 1-1.3. 생성자 클래스의 인스턴스..
2023.08.26
-
#5 파이썬 기초 3 // 함수 문법 정리
오늘은 함수 문법에 대해 배웠다. 함수(Function)란? 특정 목적을 위해 작성한 코드(연산)의 집합 반복되는 코드를 묶음으로 효율적인 코드를 작성하도록 해주는 기능 독립적인 호출과 간결한 코드 작성을 위해 사용 : 코드 작성의 반복을 줄일 수 있음! 1. 선언, 호출, return, *args, **kwargs 1-1. 선언 def 함수명(param1, param2, ...): # 작성하고 싶은 코드 구문 # ... # ... return 결과값 1-2. 호출 def 함수명(파라미터): return 함수명(아규먼트) 파라미터 : 함수를 선언할때 호출하는 부분에서 보내주는 데이터를 받는 변수 아규먼트 : 함수를 호출할때 함수에 보내주는 데이터 함수를 선언할 때 파라미터의 타입과 개수를 맞추지 않으면 ..
2023.08.25