본문 바로가기
반응형

R52

10강. CNN 모델을 사용한 다중 분류 모델 구현하기 이전 포스트에서는 로지스틱 회귀모형을 사용하여 분류를 하는 문제를 다루었다. 이번 시간에는 좀 더 복잡한 분류 문제를 CNN(Convolutioinal Neural Network) 모델을 사용하여 해결하는 방법에 대하여 학습해보자. 예제 데이터 딥러닝에서 가장 유명한 데이터는 바로 MNIST 데이터이다. 딥러닝을 시작할 때 가장 많이 등장하는 signiture 느낌의 데이터 셋이므로 꼭 알고 있어야하는 데이터셋 중 하나이다. 캐글에서도 이 데이터를 사용하여 튜토리얼 대회를 열어놓았다. 본 포스팅은 캐글 튜토리얼 대회의 자료를 그대로 사용한다. MNIST 데이터는 손글씨 숫자 이미지 데이터라고 생각하면 된다. 데이터 셋에는 무작위로 0에서부터 9까지의 숫자가 손글씨 이미지 형태로 저장되어있다. 대회에서는 .. 2021. 11. 22.
9강. Torch의 Dataset과 Dataloader 클래스에 대하여 이번 챕터에서는 실제 딥러닝을 사용하여 모델링을 할 때 사용될 데이터를 어떻게 torch에 넣을수 있는지에 대하여 알아보자. 이 과정에서 우리가 알아야하는 클래스가 두개가 있는데, 바로 Dataset 클래스와 Dataloader 클래스이다. 예제 데이터 언제나 그렇듯, 본 공략집은 예제를 통해서 설명하는 것을 선호한다. 이번 챕터에서는 가상의 학생들의 공부시간과 연습한 문제 갯수, 그리고 시험의 합격 여부에 대한 자료를 만들어보았다. 아래 그림에서 볼 수 있듯이 공부 시간과 연습한 문제 갯수에 따라서 두 그룹으로 비교적 잘 나뉘어져 있다는 것을 알 수 있다. library(torch) library(tidyverse) set.seed(2021) # 독립변수 발생 x1 2021. 11. 8.
8강. 첫 torch 신경망 학습하기 저번 시간 우리는 토치에서 신경망을 정의하는 방법에 대하여 알아보았다. 오늘은 정의한 신경망을 어떻게 학습하는가에 대하여 알아보도록 하자. 학습 준비 - 데이터 만들기 필자는 유튜브에 R을 사용한 통계 관련 수업들을 올려놓았다. 이 수업에서 큰 축을 이루는 것 중 하나가 바로 회귀분석이다. 회귀분석은 주어진 데이터를 모델링할 때 신경망의 가장 큰 장점은 회귀 직선과 같은 선형 모형들이 가지는 한계를 넘어서, 비선형 모델링을 할 수 있게 해 준다는 것이다. 이러한 장점들을 잘 확인해보기 위해서 비선형 모델에서 관찰 값을 뽑아 모의 데이터로 만들어 보도록 하자. library(tidyverse) # 재현 가능을 위한 시드 고정 set.seed(2021) # x 자리 임의 생성 x 2021. 11. 8.
7강. torch_nn 모듈로 첫 신경망 정의하기 이제까지 torch의 자동 미분(auto grad) 기능과 순전파(forward propagation)에 대하여 알아보았다. 오늘은 드디어, torch 라이브러리에서 제공하는 함수들을 이용해서 순전파 챕터에서 텐서로 일일이 정의했던 기본 신경망을 라이브러리 함수를 통하여 만들어 보도록 하자. 딥러닝 라이브러리에서 제공하는 코드를 통하여 신경망을 정의하는 코드가 어떻게 간단해지는지 느껴보았으면 한다. 신경망 정의 (Custom nn Modules) 토치를 사용해서 신경망을 정의할 때 사용하는 함수가 있다. 바로 nn_module()이라는 함수인데, torch에서 신경망을 정의할 때, 이 함수를 사용해서 “클래스”를 만들어 정의한다! 왜 우리가 챕터 @ref(r6)에서 R6관련 클래스 내용을 그렇게도 공부했.. 2021. 11. 8.
6강. 미분 자동추적 기능 (Autograd) 에 대하여 이번 장에서는 torch 및 다른 딥러닝 라이브러리의 근본을 이루는 기능인 미분 자동 추적 기능에 대하여 알아보도록 하자. 예를 들어 설명하는 것을 좋아하므로, 이번 챕터에 쓸 예제 함수를 먼저 정의하자. 예제 함수 \(n\)개의 데이터 \(x_1, ..., x_n\)이 주어졌다고 할 때, 우리는 다음의 함수 \(f\)를 정의 할 수 있다. \[ f(\mu) = \frac{1}{n}\sum_{i=1}^{n}(x_i - \mu)^2 \] 위의 함수는 다음과 같이 해석해 볼 수 있다. \(x\) 데이터에 담겨있는 정보를 단 하나의 지표 \(\mu\)로 압축해서 나타낸다고 할 때, 함수 \(f\)는 각 관찰값에 대한 오차들, \(x_i - \mu\),의 제곱의 평균을 나타낸다. 통계학에서는 나름 유명한 함수인.. 2021. 11. 8.
5강. 데이터 프레임 가지고 놀기 학습목표 오늘은 R 데이터 분석 환경에서 가장 많이 쓰이는 객체인 데이터 프레임을 가지고 놀아보는 시간을 갖도록 하겠습니다. 가장 많이 쓰인다는 말을 앞으로 계속 마주치게 될 녀석이라는 이야기겠죠? 그러니까 꼭 정확하게 알아두셔야 합니다.ㅎㅎ 늘 말씀드리지만, 처음 배울때 잘 배우셔야 오래갑니다. 정신 집중하시고, 고고! 데이터 프레임 만들기 원소 접근 방법 학습 데이터 프레임 인덱싱 NA를 처리하는 방법 구성원소 추가/삭제/변경 subset() 함수 aggregate() 함수 배울 게 많군요! 차근차근 따라와주세요. 여러분 그거 아세요? 오늘 잘 배운 함수, 내일 직장에서의 10분을 절약해 줌. 강의영상 아래 쪽에 강의안 첨부합니다. 다운받으시고 강의 들어주세요. 그럼 R공부를 슬기롭게! 같이 공부해보.. 2021. 10. 9.
4강. R 리스트 완전 정복하기 학습목표 이번 강의의 목표는 R 리스트를 완전 정복하는게 목표입니다.ㅋㅋ R에서 리스트는 상당히 특별한 존재입니다. 왜냐하면 다른 여러 객체들을 한꺼번에 다 담을 수 있거든요! 리스트 만들기 벡터 vs. 리스트 리스트 인덱싱 재귀 리스트 리스트에 함수 적용하기 lapply()와 sapply() 어느 언어나 마찬가지입니다. 처음에 잘 이해하고, 반복해서 사용해야합니다. 강의 영상 및 강의안 아래 쪽에 강의안 첨부합니다. 다운받으시고 강의 들어주세요. 그럼 R공부를 슬기롭게! 같이 공부해보시쥬! 2021. 10. 9.
R tidyverse 마스터 클래스 - 1강. dplyr 패키지 기초동사 학습하기 드디어 기초 R 강의에서 벗어나서 좀 더 중급 레벨 R 강의를 하게 되었습니다! 오예~! 데이터 분석 실무에서 사용되는 tidyverse 패키지를 기초부터 차근차근 완벽하게 마스터 해봅시다! 학습목표 dplyr 패키지의 기본동사들을 학습합니다. dplyr 패키지는 데이터를 이리저리 만지는데 아주 유용한 함수들이 많고, 그만큼 방대한 패키지 입니다. 따라서 1강에서 기초를 잡고, 2강에서 고급 기술들을 알아보도록 하겠습니다. 1강 꼭 복습잘하시고 오세용! 안그럼 나중에 후회막심~!ㅋㅋㅋ 이번 강의에서 알고 넘어가야하는 개념들은 다음과 같습니다. 행에 관한 함수들을 학습합니다. distinct() filter() arrange() 열에 관한 함수들을 학습합니다. select() mutate() relocat.. 2021. 10. 7.
3강. R 행렬 그까이꺼~~ 학습목표 2강을 잘 수강하셨다면, 이제 벡터와 좀 친해졌지 않나요? 저만 그렇게 느끼는 건가요?ㅋㅋ 벡터와 친해지셨다면 이번에는 벡터의 형제 격인 행렬에 대하여 알아볼 예정입니다. 이번 강의에서는 다음과 같은 내용을 학습해 보도록 하겠습니다. 행렬 선언하기 행렬 인덱싱과 행렬 필터링 행렬과 사진과의 관계 행렬의 연산 행렬의 확장 - 배열에 대하여 듣기만 해도 재미있어 보이지 않습니까?ㅋㅋㅋㅋ 실제로 들으시면 더 재미있습니다. 개인적으로 가르칠 때도 재미있는 좋아하는 강의 중 하나입니다. 강의 들으시면서 느끼실거예요. 아하, 앞에서 배운 개념들이 이렇게 쌓여가는구나~! 강의 영상 아래 쪽에 강의안 첨부합니다. 다운받으시고 강의 들어주세요. 그럼 R공부를 슬기롭게! 같이 공부해보시쥬! R 책 추천 R 공부를.. 2021. 10. 6.
2강. R 벡터와 친해지기 학습목표 1강은 잘 들으셨나요? 지나치기 쉬운 내용들이지만, 꼭 알고 있어야하는 지식들 맞죠? :) 이번 강의 부터는 본격적으로 R 프로그래밍 공부를 해볼 예정입니다. 특히 가장 기초 개념인 벡터의 개념에 대하여 알아볼 거예요. 이번 강의에서 우리가 배울 내용은 다음과 같습니다. 벡터의 선언방법 벡터의 인덱싱 개념 논리 연산자와 조건문을 사용한 벡터 필터링 which() 함수 사용법 NA와 NULL의 차이에 대하여 벡터의 개념을 꽉 잡고 있으면, 앞으로의 강의들이 쉬워질 거예요. 처음 배울때 잘 배워야 한다는 거 아시죠? 처음 배운게 끝까지 갑니다. 강의 영상 아래 쪽에 강의안 첨부합니다. 다운받으시고 강의 들어주세요. 그럼 R공부를 슬기롭게! 같이 공부해보시쥬! R 책 추천 R 공부를 이제 막 시작하시.. 2021. 10. 6.
1강. R과 RStudio 첫 걸음마 떼기 학습목표 첫 시간에는 앞으로 친해진 R을 본격적으로 공부하기에 앞서 R이 개발된 이유, 왜 R을 배워야 할까에 대하여 알아보는 시간을 가져봅니다. 이번 강의에서 배워볼 내용은 다음과 같습니다. R의 장점 R 코드 실행방법 기본 연산자 R 함수 시스템 - namespace의 개념 R 코드 벡터화 개념 Recycling 의 개념 R 프로젝트 폴더 만드는 방법과 시작 설정 방법 이번 강의의 내용들은 사실 처음 배우는 분들께서 쉽게 지나치고 넘어가지만, 모르면 너무나 불편한 내용들을 모아서 강의 했습니다. 안다고 넘어가지 마시고, 꼭 들어주세요. 나중에 결국 슬통 슬랙으로 오셔서 이 부분 질문하시는 분들 너무 많아요.. 강의 영상 아래 쪽에 강의안 첨부합니다. 다운 받으시고, 강의 들어주세요! 그럼 즐공! R .. 2021. 10. 6.
5강. 딥러닝 신경망의 구조 - 순전파 (Forward propagation) 이해하기 이제 처음으로 딥러닝의 밑바닥을 이루는 인공 신경망의 구조를 이해하는 시간이다. 앞으로 우리가 다룰 수많은 신경망 모델의 기반을 이루는 내용이므로, 정말 많은 시간을 투자해서 이해해두기 바란다. 투자한 시간에 비례하여, 추후에 복잡한 모델을 학습하는 시간을 단축시켜 줄 것이라 장담한다. 딥러닝의 시작점인 신경망(Neural network)을 공부하기 위해서, 앞으로 우리가 다룰 모델 중 가장 간단하면서, 딥러닝에서 어떤 일이 벌어지고 있는지 상상이 가능한 신경망을 먼저 학습하기로 하자. 우리가 오늘 예로 생각할 신경망은 다음과 같다. 위의 그림과 같은 신경망을 2단 신경망이라고 부른다. 일반적으로 단수를 셀 때 제일 처음 입력하는 층은 단수에 포함하지 않는 것에 주의하자. 각 녹색, 회색, 그리고 빨간색.. 2021. 10. 4.
반응형