머신 러닝 교과서: 파이토치 편

탄탄한 이론과 다양한 예제로 배우는 머신 러닝/딥러닝 실전 가이드
$70.04
SKU
9791140707362
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Fri 12/6 - Thu 12/12 (주문일로부 10-14 영업일)

Express Shipping estimated by Tue 12/3 - Thu 12/5 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2023/11/30
Pages/Weight/Size 183*235*36mm
ISBN 9791140707362
Categories IT 모바일 > 컴퓨터 공학
Description
아마존 베스트셀러를 파이토치 버전으로 만난다!
탄탄한 이론과 다양한 예제로 배우는 머신 러닝/딥러닝 실전 가이드

아마존 베스트셀러인 『머신 러닝 교과서』가 파이토치 편으로 새롭게 태어났다! 머신 러닝과 딥러닝을 제대로 이해하기 위해 필요한 개념, 핵심 알고리즘 작동 방식과 사용 방법, 밑바탕이 되는 수학, 실용적인 예제, 빠지기 쉬운 함정을 피하는 방법까지 이론과 코드를 균형 있게 설명한다. 또한, 파이썬 기반의 핵심 라이브러리(SciPy, NumPy, scikit-learn, Matplotlib, Pandas)를 사용해 머신 러닝을, 파이토치를 사용해 디버닝을 설명한다. 파이토치 핵심 개념은 물론이고, 『머신 러닝 교과서 3판』에서 다룬 내용 외에 트랜스포머, 파이토치 라이트닝, XGBoost, 그래프 신경망 등 최신 동향까지 추가했으며, 사이킷런과 파이토치 모두 최신 버전을 기준으로 한다. 머신 러닝과 딥러닝 기본기를 탄탄하게 다지고 싶은 분께 추천한다.
Contents
1장. 컴퓨터는 데이터에서 배운다

1.1 데이터를 지식으로 바꾸는 지능적인 시스템 구축
1.2 머신 러닝의 세 가지 종류
__1.2.1 지도 학습으로 미래 예측
__1.2.2 강화 학습으로 반응형 문제 해결
__1.2.3 비지도 학습으로 숨겨진 구조 발견
1.3 기본 용어와 표기법 소개
__1.3.1 이 책에서 사용하는 표기법과 규칙
__1.3.2 머신 러닝 용어
1.4 머신 러닝 시스템 구축 로드맵
__1.4.1 전처리: 데이터 형태 갖추기
__1.4.2 예측 모델 훈련과 선택
__1.4.3 모델을 평가하고 본 적 없는 샘플로 예측
1.5 머신 러닝을 위한 파이썬
__1.5.1 파이썬과 PIP에서 패키지 설치
__1.5.2 아나콘다 파이썬 배포판과 패키지 관리자 사용
__1.5.3 과학 컴퓨팅, 데이터 과학, 머신 러닝을 위한 패키지
1.6 요약

2장. 간단한 분류 알고리즘 훈련

2.1 인공 뉴런: 초기 머신 러닝의 간단한 역사
__2.1.1 인공 뉴런의 수학적 정의
__2.1.2 퍼셉트론 학습 규칙
2.2 파이썬으로 퍼셉트론 학습 알고리즘 구현
__2.2.1 객체 지향 퍼셉트론 API
__2.2.2 붓꽃 데이터셋에서 퍼셉트론 훈련
2.3 적응형 선형 뉴런과 학습의 수렴
__2.3.1 경사 하강법으로 손실 함수 최소화
__2.3.2 파이썬으로 아달린 구현
__2.3.3 특성 스케일을 조정하여 경사 하강법 결과 향상
__2.3.4 대규모 머신 러닝과 확률적 경사 하강법
2.4 요약

3장. 사이킷런을 타고 떠나는 머신 러닝 분류 모델 투어

3.1 분류 알고리즘 선택
3.2 사이킷런 첫걸음: 퍼셉트론 훈련
3.3 로지스틱 회귀를 사용한 클래스 확률 모델링
__3.3.1 로지스틱 회귀의 이해와 조건부 확률
__3.3.2 로지스틱 손실 함수의 가중치 학습
__3.3.3 아달린 구현을 로지스틱 회귀 알고리즘으로 변경
__3.3.4 사이킷런을 사용하여 로지스틱 회귀 모델 훈련
__3.3.5 규제를 사용하여 과대적합 피하기
3.4 서포트 벡터 머신을 사용한 최대 마진 분류
__3.4.1 최대 마진
__3.4.2 슬랙 변수를 사용하여 비선형 분류 문제 다루기
__3.4.3 사이킷런의 다른 구현
3.5 커널 SVM을 사용하여 비선형 문제 풀기
__3.5.1 선형적으로 구분되지 않는 데이터를 위한 커널 방법
__3.5.2 커널 기법을 사용하여 고차원 공간에서 분할 초평면 찾기
3.6 결정 트리 학습
__3.6.1 정보 이득 최대화: 자원을 최대로 활용
__3.6.2 결정 트리 만들기
__3.6.3 랜덤 포레스트로 여러 개의 결정 트리 연결
3.7 k-최근접 이웃: 게으른 학습 알고리즘
3.8 요약

4장. 좋은 훈련 데이터셋 만들기: 데이터 전처리

4.1 누락된 데이터 다루기
__4.1.1 테이블 형태 데이터에서 누락된 값 식별
__4.1.2 누락된 값이 있는 훈련 샘플이나 특성 제외
__4.1.3 누락된 값 대체
__4.1.4 사이킷런 추정기 API 익히기
4.2 범주형 데이터 다루기
__4.2.1 판다스를 사용한 범주형 데이터 인코딩
__4.2.2 순서가 있는 특성 매핑
__4.2.3 클래스 레이블 인코딩
__4.2.4 순서가 없는 특성에 원-핫 인코딩 적용
4.3 데이터셋을 훈련 데이터셋과 테스트 데이터셋으로 나누기
4.4 특성 스케일 맞추기
4.5 유용한 특성 선택
__4.5.1 모델 복잡도 제한을 위한 L1 규제와 L2 규제
__4.5.2 L2 규제의 기하학적 해석
__4.5.3 L1 규제를 사용한 희소성
__4.5.4 순차 특성 선택 알고리즘
4.6 랜덤 포레스트의 특성 중요도 사용
4.7 요약

5장. 차원 축소를 사용한 데이터 압축

5.1 주성분 분석을 통한 비지도 차원 축소
__5.1.1 주성분 분석의 주요 단계
__5.1.2 주성분 추출 단계
__5.1.3 총 분산과 설명된 분산
__5.1.4 특성 변환
__5.1.5 사이킷런의 주성분 분석
5.2 선형 판별 분석을 통한 지도 방식의 데이터 압축
__5.2.1 주성분 분석 vs 선형 판별 분석
__5.2.2 선형 판별 분석의 내부 동작 방식
__5.2.3 산포 행렬 계산
__5.2.4 새로운 특성 부분 공간을 위해 선형 판별 벡터 선택
__5.2.5 새로운 특성 공간으로 샘플 투영
__5.2.6 사이킷런의 LDA
5.3 비선형 차원 축소와 시각화
__5.3.1 비선형 차원 축소를 고려하는 이유는 무엇인가요?
__5.3.2 t-SNE를 사용한 데이터 시각화
5.4 요약

6장. 모델 평가와 하이퍼파라미터 튜닝의 모범 사례

6.1 파이프라인을 사용한 효율적인 워크플로
__6.1.1 위스콘신 유방암 데이터셋
__6.1.2 파이프라인으로 변환기와 추정기 연결
6.2 k-겹 교차 검증을 사용한 모델 성능 평가
__6.2.1 홀드아웃 방법
__6.2.2 k-겹 교차 검증
6.3 학습 곡선과 검증 곡선을 사용한 알고리즘 디버깅
__6.3.1 학습 곡선으로 편향과 분산 문제 분석
__6.3.2 검증 곡선으로 과대적합과 과소적합 조사
6.4 그리드 서치를 사용한 머신 러닝 모델 세부 튜닝
__6.4.1 그리드 서치를 사용한 하이퍼파라미터 튜닝
__6.4.2 랜덤 서치로 하이퍼파라미터 설정을 더 넓게 탐색하기
__6.4.3 SH 방식을 사용한 자원 효율적인 하이퍼파라미터 탐색
__6.4.4 중첩 교차 검증을 사용한 알고리즘 선택
6.5 여러 가지 성능 평가 지표
__6.5.1 오차 행렬
__6.5.2 분류 모델의 정밀도와 재현율 최적화
__6.5.3 ROC 곡선 그리기
__6.5.4 다중 분류의 성능 지표
__6.5.5 불균형한 클래스 다루기
6.6 요약

7장. 다양한 모델을 결합한 앙상블 학습

7.1 앙상블 학습
7.2 다수결 투표를 사용한 분류 앙상블
__7.2.1 간단한 다수결 투표 분류기 구현
__7.2.2 다수결 투표 방식을 사용하여 예측 만들기
__7.2.3 앙상블 분류기의 평가와 튜닝
7.3 배깅: 부트스트랩 샘플링을 통한 분류 앙상블
__7.3.1 배깅 알고리즘의 작동 방식
__7.3.2 배깅으로 Wine 데이터셋의 샘플 분류
7.4 약한 학습기를 이용한 에이다부스트
__7.4.1 부스팅 작동 원리
__7.4.2 사이킷런에서 에이다부스트 사용
7.5 그레이디언트 부스팅: 손실 그레이디언트 기반의 앙상블 훈련
__7.5.1 에이다부스트와 그레이디언트 부스팅 비교
__7.5.2 그레이디언트 부스팅 알고리즘 소개
__7.5.3 분류를 위한 그레이디언트 부스팅 알고리즘
__7.5.4 그레이디언트 부스팅 분류 예제
__7.5.5 XGBoost 사용하기
7.6 요약

8장. 감성 분석에 머신 러닝 적용

8.1 텍스트 처리용 IMDb 영화 리뷰 데이터 준비
__8.1.1 영화 리뷰 데이터셋 구하기
__8.1.2 영화 리뷰 데이터셋을 더 간편한 형태로 전처리
8.2 BoW 모델 소개
__8.2.1 단어를 특성 벡터로 변환
__8.2.2 tf-idf를 사용하여 단어 적합성 평가
__8.2.3 텍스트 데이터 정제
__8.2.4 문서를 토큰으로 나누기
8.3 문서 분류를 위한 로지스틱 회귀 모델 훈련
8.4 대용량 데이터 처리: 온라인 알고리즘과 외부 메모리 학습
8.5 잠재 디리클레 할당을 사용한 토픽 모델링
__8.5.1 LDA를 사용한 텍스트 문서 분해
__8.5.2 사이킷런의 LDA
8.6 요약

9장. 회귀 분석으로 연속적 타깃 변수 예측

9.1 선형 회귀
__9.1.1 단순 선형 회귀
__9.1.2 다중 선형 회귀
9.2 에임스 주택 데이터셋 탐색
__9.2.1 데이터프레임으로 에임스 주택 데이터셋 읽기
__9.2.2 데이터셋의 중요 특징 시각화
__9.2.3 상관관계 행렬을 사용한 분석
9.3 최소 제곱 선형 회귀 모델 구현
__9.3.1 경사 하강법으로 회귀 모델의 파라미터 구하기
__9.3.2 사이킷런으로 회귀 모델의 가중치 추정
9.4 RANSAC을 사용하여 안정된 회귀 모델 훈련
9.5 선형 회귀 모델의 성능 평가
9.6 회귀에 규제 적용
9.7 선형 회귀 모델을 다항 회귀로 변환
__9.7.1 사이킷런을 사용하여 다항식 항 추가
__9.7.2 에임스 주택 데이터셋을 사용한 비선형 관계 모델링
9.8 랜덤 포레스트를 사용하여 비선형 관계 다루기
__9.8.1 결정 트리 회귀
__9.8.2 랜덤 포레스트 회귀
9.9 요약

10장. 레이블되지 않은 데이터 다루기: 군집 분석

10.1 k-평균 알고리즘을 사용하여 유사한 객체 그룹핑
__10.1.1 사이킷런을 사용한 k-평균 군집
__10.1.2 k-평균++로 초기 클러스터 센트로이드를 똑똑하게 할당
__10.1.3 직접 군집 vs 간접 군집
__10.1.4 엘보우 방법을 사용하여 최적의 클러스터 개수 찾기
__10.1.5 실루엣 그래프로 군집 품질을 정량화
10.2 계층적인 트리로 클러스터 조직화
__10.2.1 상향식으로 클러스터 묶기
__10.2.2 거리 행렬에서 계층 군집 수행
__10.2.3 히트맵에 덴드로그램 연결
__10.2.4 사이킷런에서 병합 군집 적용
10.3 DBSCAN을 사용하여 밀집도가 높은 지역 찾기
10.4 요약

11장. 다층 인공 신경망을 밑바닥부터 구현

11.1 인공 신경망으로 복잡한 함수 모델링
__11.1.1 단일층 신경망 요약
__11.1.2 다층 신경망 구조
__11.1.3 정방향 계산으로 신경망 활성화 출력 계산
11.2 손글씨 숫자 분류
__11.2.1 MNIST 데이터셋 구하기
__11.2.2 다층 퍼셉트론 구현
__11.2.3 신경망 훈련 루프 코딩
__11.2.4 신경망 모델의 성능 평가
11.3 인공 신경망 훈련
__11.3.1 손실 함수 계산
__11.3.2 역전파 알고리즘 이해
__11.3.3 역전파 알고리즘으로 신경망 훈련
11.4 신경망의 수렴
11.5 신경망 구현에 관한 몇 가지 첨언
11.6 요약

12장. 파이토치를 사용한 신경망 훈련

12.1 파이토치와 훈련 성능
__12.1.1 성능 문제
__12.1.2 파이토치란?
__12.1.3 파이토치 학습 방법
12.2 파이토치 처음 시작하기
__12.2.1 파이토치 설치
__12.2.2 파이토치에서 텐서 만들기
__12.2.3 텐서의 데이터 타입과 크기 조작
__12.2.4 텐서에 수학 연산 적용
__12.2.5 chunk( ), stack( ), cat( ) 함수
12.3 파이토치 입력 파이프라인 구축
__12.3.1 텐서에서 파이토치 DataLoader 만들기
__12.3.2 두 개의 텐서를 하나의 데이터셋으로 연결
__12.3.3 셔플, 배치, 반복
__12.3.4 로컬 디스크에 있는 파일에서 데이터셋 만들기
__12.3.5 torchvision.datasets 라이브러리에서 데이터셋 로드
12.4 파이토치로 신경망 모델 만들기
__12.4.1 파이토치 신경망 모듈(torch.nn)
__12.4.2 선형 회귀 모델 만들기
__12.4.3 torch.nn과 torch.optim 모듈로 모델 훈련하기
__12.4.4 붓꽃 데이터셋을 분류하는 다층 퍼셉트론 만들기
__12.4.5 테스트 데이터셋에서 모델 평가하기
__12.4.6 훈련된 모델 저장하고 로드하기
12.5 다층 신경망의 활성화 함수 선택
__12.5.1 로지스틱 함수 요약
__12.5.2 소프트맥스 함수를 사용한 다중 클래스 확률 예측
__12.5.3 하이퍼볼릭 탄젠트로 출력 범위 넓히기
__12.5.4 렐루 활성화 함수
12.6 요약

13장. 파이토치 구조 자세히 알아보기

13.1 파이토치의 주요 특징
13.2 파이토치의 계산 그래프
__13.2.1 계산 그래프 이해
__13.2.2 파이토치로 그래프 만들기
13.3 모델 파라미터를 저장하고 업데이트하기 위한 파이토치 텐서 객체
13.4 자동 미분으로 그레이디언트 계산
__13.4.1 훈련 가능한 변수에 대한 손실의 그레이디언트 계산
__13.4.2 자동 미분 이해하기
__13.4.3 적대 샘플
13.5 torch.nn 모듈을 사용하여 일반적인 아키텍처 구현하기
__13.5.1 nn.Sequential 기반의 모델 구현하기
__13.5.2 손실 함수 선택하기
__13.5.3 XOR 분류 문제 풀어 보기
__13.5.4 nn.Module로 유연성이 높은 모델 만들기
__13.5.5 파이토치에서 사용자 정의 층 만들기
13.6 프로젝트 1: 자동차 연비 예측하기
__13.6.1 특성 열 사용
__13.6.2 DNN 회귀 모델 훈련하기
13.7 프로젝트 2: MNIST 손글씨 숫자 분류하기
13.8 고수준 파이토치 API: 파이토치 라이트닝 소개
__13.8.1 파이토치 라이트닝 모델 준비하기
__13.8.2 라이트닝을 위한 데이터 로더 준비하기
__13.8.3 라이트닝 Trainer 클래스를 사용하여 모델 훈련하기
__13.8.4 텐서보드로 모델 평가하기
13.9 요약

14장. 심층 합성곱 신경망으로 이미지 분류

14.1 합성곱 신경망의 구성 요소
__14.1.1 CNN과 특성 계층 학습
__14.1.2 이산 합성곱 수행
__14.1.3 서브샘플링
14.2 기본 구성 요소를 사용하여 심층 합성곱 신경망 구성
__14.2.1 여러 개의 입력 또는 컬러 채널 다루기
__14.2.2 L2 규제와 드롭아웃으로 신경망 규제
__14.2.3 분류를 위한 손실 함수
14.3 파이토치를 사용하여 심층 합성곱 신경망 구현
__14.3.1 다층 CNN 구조
__14.3.2 데이터 적재와 전처리
__14.3.3 torch.nn 모듈을 사용하여 CNN 구현
14.4 합성곱 신경망을 사용하여 웃는 얼굴 분류
__14.4.1 CelebA 데이터셋 로드
__14.4.2 이미지 변환과 데이터 증식
__14.4.3 CNN 웃는 얼굴 분류기 훈련
14.5 요약

15장. 순환 신경망으로 순차 데이터 모델링

15.1 순차 데이터 소개
__15.1.1 순차 데이터 모델링: 순서를 고려한다
__15.1.2 순차 데이터 vs 시계열 데이터
__15.1.3 시퀀스 표현
__15.1.4 시퀀스 모델링의 종류
15.2 시퀀스 모델링을 위한 RNN
__15.2.1 RNN 반복 구조 이해
__15.2.2 RNN의 활성화 출력 계산
__15.2.3 은닉 순환과 출력 순환
__15.2.4 긴 시퀀스 학습의 어려움
__15.2.5 LSTM 셀
15.3 파이토치로 시퀀스 모델링을 위한 RNN 구현
__15.3.1 첫 번째 프로젝트: IMDb 영화 리뷰의 감성 분석
__15.3.2 두 번째 프로젝트: 텐서플로로 글자 단위 언어 모델 구현
15.4 요약

16장. 트랜스포머: 어텐션 메커니즘을 통한 자연어 처리 성능 향상

16.1 어텐션 메커니즘이 추가된 RNN
__16.1.1 RNN의 정보 검색을 돕는 어텐션
__16.1.2 RNN을 위한 원본 어텐션 메커니즘
__16.1.3 양방향 RNN으로 입력 처리하기
__16.1.4 문맥 벡터에서 출력 생성하기
__16.1.5 어텐션 가중치 계산하기
16.2 셀프 어텐션 메커니즘 소개
__16.2.1 기본적인 형태의 셀프 어텐션
__16.2.2 훈련 가능한 셀프 어텐션 메커니즘: 스케일드 점곱 어텐션
16.3 어텐션이 필요한 전부다: 원본 트랜스포머 아키텍처
__16.3.1 멀티 헤드 어텐션으로 문맥 임베딩 인코딩하기
__16.3.2 언어 모델 학습: 디코더와 마스크드 멀티 헤드 어텐션
__16.3.3 구현 세부 사항: 위치 인코딩 및 층 정규화
16.4 레이블이 없는 데이터를 활용하여 대규모 언어 모델 구축
__16.4.1 트랜스포머 모델 사전 훈련 및 미세 튜닝
__16.4.2 GPT로 레이블이 없는 데이터 활용하기
__16.4.3 GPT-2를 사용하여 새로운 텍스트 생성
__16.4.4 BERT를 통한 양방향 사전 훈련
__16.4.5 두 장점을 합친 BART
16.5 파이토치에서 BERT 모델 미세 튜닝하기
__16.5.1 IMDb 영화 리뷰 데이터셋 로드
__16.5.2 데이터셋 토큰화 715
__16.5.3 사전 훈련된 BERT 모델 로드 및 미세 튜닝하기
__16.5.4 트레이너 API를 사용하여 트랜스포머를 간편하게 미세 튜닝하기
16.6 요약

17장. 새로운 데이터 합성을 위한 생성적 적대 신경망

17.1 생성적 적대 신경망 소개
__17.1.1 오토인코더
__17.1.2 새로운 데이터 합성을 위한 생성 모델
__17.1.3 GAN으로 새로운 샘플 생성
__17.1.4 GAN의 생성자와 판별자 손실 함수 이해
17.2 밑바닥부터 GAN 모델 구현
__17.2.1 구글 코랩에서 GAN 모델 훈련
__17.2.2 생성자와 판별자 신경망 구현
__17.2.3 훈련 데이터셋 정의
__17.2.4 GAN 모델 훈련하기
17.3 합성곱 GAN과 바서슈타인 GAN으로 합성 이미지 품질 높이기
__17.3.1 전치 합성곱
__17.3.2 배치 정규화
__17.3.3 생성자와 판별자 구현
__17.3.4 두 분포 사이의 거리 측정
__17.3.5 GAN에 EM 거리 사용
__17.3.6 그레이디언트 페널티
__17.3.7 WGAN-GP로 DCGAN 모델 훈련
__17.3.8 모드 붕괴
17.4 다른 GAN 애플리케이션
17.5 요약

18장. 그래프 구조 데이터의 의존성 감지를 위한 그래프 신경망

18.1 그래프 데이터 소개
__18.1.1 비유향 그래프
__18.1.2 유향 그래프
__18.1.3 레이블 그래프
__18.1.4 분자를 그래프로 표현하기
18.2 그래프 합성곱의 이해
__18.2.1 그래프 합성곱의 사용 동기
__18.2.2 기본 그래프 합성곱 구현
18.3 파이토치에서 GNN을 밑바닥부터 구현하기
__18.3.1 NodeNetwork 모델 정의하기
__18.3.2 NodeNetwork의 그래프 합성곱 층 만들기
__18.3.3 다양한 그래프 크기를 처리하기 위해 전역 풀링 층 추가하기
__18.3.4 데이터 로더 준비
__18.3.5 노드 네트워크를 사용하여 예측하기
18.4 파이토치 지오메트릭 라이브러리를 사용하여 GNN 구현하기
18.5 기타 GNN 층 및 최근 개발 사항
__18.5.1 스펙트럼 그래프 합성곱
__18.5.2 풀링
__18.5.3 정규화
__18.5.4 그 외 고급 그래프 신경망
18.6 요약

19장. 강화 학습으로 복잡한 환경에서 의사 결정

19.1 경험에서 배운다
__19.1.1 강화 학습 이해
__19.1.2 강화 학습 시스템의 에이전트-환경 인터페이스 정의
19.2 강화 학습의 기초 이론
__19.2.1 마르코프 결정 과정
__19.2.2 마르코프 결정 과정의 수학 공식
__19.2.3 강화 학습 용어: 대가, 정책, 가치 함수
__19.2.4 벨먼 방정식을 사용한 동적 계획법
19.3 강화 학습 알고리즘
__19.3.1 동적 계획법
__19.3.2 몬테카를로를 사용한 강화 학습
__19.3.3 시간 차 학습
19.4 첫 번째 강화 학습 알고리즘 구현
__19.4.1 OpenAI 짐 툴킷 소개
__19.4.2 Q-러닝으로 그리드 월드 문제 풀기
19.5 심층 Q-러닝
__19.5.1 Q-러닝 알고리즘에 따라 DQN 모델 훈련
__19.5.2 심층 Q-러닝 알고리즘 구현
19.6 전체 요약
Author
세바스찬라시카,바히드미자리리,유시 (헤이든) 류,박해선
위스콘신-매디슨 대학교의 통계학 조교수로 머신 러닝과 딥러닝에 중점을 두고 있다. 그의 최근 연구는 제한된 데이터로 작업하기 위한 퓨-샷(few-shot) 학습과 순서가 있는 타깃에 대한 심층 신경망 개발과 같은 일반적인 문제에 초점이 맞춰져 있다. 또한, 오픈 소스 기여자로도 활발히 활동 중이며, Grid.ai의 수석 AI 교육자라는 새로운 역할을 통해 사람들이 머신 러닝과 AI에 입문할 수 있도록 돕는 데 열정을 쏟을 계획이다.
위스콘신-매디슨 대학교의 통계학 조교수로 머신 러닝과 딥러닝에 중점을 두고 있다. 그의 최근 연구는 제한된 데이터로 작업하기 위한 퓨-샷(few-shot) 학습과 순서가 있는 타깃에 대한 심층 신경망 개발과 같은 일반적인 문제에 초점이 맞춰져 있다. 또한, 오픈 소스 기여자로도 활발히 활동 중이며, Grid.ai의 수석 AI 교육자라는 새로운 역할을 통해 사람들이 머신 러닝과 AI에 입문할 수 있도록 돕는 데 열정을 쏟을 계획이다.