줄리아는 MIT에서 매트랩, 파이썬, 펄, C, R 언어의 수학적 강점을 모아 개발한 인공지능 시대의 새롭고 합당한 대안이다. 빠른 속도를 자랑하며 수식을 그대로 옮겨 놓은 듯 아름다운 문법을 뽐낸다. 과학, 공학 계통에서 수리 계산을 위해 프로그래밍이 필요하다면 선형대수학을 위해, 통계 분석을 위해, 혹은 빠른 속도를 위해 줄리아를 적극 활용할 수 있다. 『줄리아 프로그래밍 : 수리 계산, 통계 분석, 딥러닝, 데이터 시각화를 위한』에서는 줄리아의 기본 사용법과 수리적인 배경 및 문법은 물론 자료형과 자료구조 구현, 함수형 프로그래밍을 줄리아의 철학을 기반으로 친절하고 세밀하게 안내한다. 또한 각종 기초 수학 연산과 삼각 함수, 지수 함수, 로그 함수, 특수 함수 등 줄리아에서의 초월 함수에 대해 살펴본다. 통계 기법, 군집화, 푸리에 변환, 신호 처리, 딥러닝 등 실제 연구 분야에서 결과를 낼 수 있을 기술을 학습한 후에는 줄리아를 활용해 연구 결과를 다양한 시각화 자료로 보기 좋게 표현하는 방법까지 꼼꼼하게 알아본다.
Contents
Part1 튜토리얼
_1.1 소개
__1.1.1 줄리아의 장점
__1.1.2 줄리아의 단점
_1.2 설치
__1.2.1 윈도우
__1.2.2 리눅스
__1.2.3 비주얼 스튜디오 코드
_1.3 대화형 REPL
__1.3.1 julia〉 줄리안 모드
__1.3.2 help?〉 도움말 모드
__1.3.3 pkg〉 패키지 모드
__1.3.4 shell〉 셸 모드
__1.3.5 ChatGPT〉 챗GPT 모드
_1.4 파일 입출력
__1.4.1 CSV.jl
__1.4.2 MAT.jl
__1.4.3 PyCall.jl
__1.4.4 JLD2.jl
_1.5 @매크로
__1.5.1 @
__1.5.2 @time
__1.5.3 @showprogress
__1.5.4 @show
__1.5.5 @thread
Part2 문법
_2.1 함수
__2.1.1 할당 양식
__2.1.2 반환 키워드
__2.1.3 브로드캐스트
_2.2 배열과 벡터 공간
__2.2.1 간단한 벡터의 정의
__2.2.2 레인지와 등차수열
__2.2.3 벡터 공간
__2.2.4 행렬
__2.2.5 텐서
__2.2.6 배열
_2.3 텍스트와 자유군
__2.3.1 문자
__2.3.2 문자열
__2.3.3 정규표현식
__2.3.4 자유 모노이드
_2.4 제어 흐름
__2.4.1 조건문
__2.4.2 반복문
Part3 데이터 처리
_3.1 자료형
__3.1.1 표준 수 체계
__3.1.2 타입의 개념
__3.1.3 구조체
_3.2 자료구조
__3.2.1 선형 데이터 구조
__3.2.2 튜플
__3.2.3 딕셔너리
__3.2.4 집합
__3.2.5 DataFrames.jl
Part4 함수형 프로그래밍
_4.1 함수 정의
__4.1.1 익명 함수
__4.1.2 함수 다형성
__4.1.3 다변수 함수
_4.2 고차 함수
__4.2.1 일급 객체
__4.2.2 맵
__4.2.3 리듀스
_4.3 인공지능
__4.3.1 인공신경망
__4.3.2 Flux.jl
Part5 수리 계산
_5.1 상수
__5.1.1 리터럴 상수
__5.1.2 빌트인 상수
__5.1.3 물리 상수
__5.1.4 기수법
_5.2 기본 연산
__5.2.1 곱셈 관련 연산
__5.2.2 나눗셈 관련 연산
__5.2.3 올림과 내림
__5.2.4 크기
__5.2.5 부호
__5.2.6 최댓값과 최솟값
_5.3 초월 함수
__5.3.1 삼각 함수
__5.3.2 지수 함수와 로그 함수
__5.3.3 특수 함수
Part6 데이터 과학
_6.1 통계 기법
__6.1.1 Random
__6.1.2 Statistics
__6.1.3 StatsBase.jl
__6.1.4 Distributions.jl
_6.2 데이터 세트
__6.2.1 RDatasets.jl
__6.2.2 MLDatasets.jl
_6.3 군집화
__6.3.1 K-평균 군집화
__6.3.2 계층적 군집화
__6.3.3 밀도 기반 군집화
_6.4 푸리에 해석
__6.4.1 푸리에 변환
__6.4.2 푸리에 역변환
__6.4.3 주파수 정렬
_6.5 딥러닝
__6.5.1 히든 레이어와 활성화 함수
__6.5.2 원-핫 인코딩
__6.5.3 경사하강법과 MLP로 비선형 함수 근사하기
__6.5.4 CNN으로 MNIST 학습하기
__6.5.5 저장하고 불러오기
__6.5.6 엔비디아 GPU 사용하기
Part7 시각화(1) - 그래프와 레이아웃
_7.1 선 그래프
_7.2 꾸미기
__7.2.1 범례
__7.2.2 제목
__7.2.3 축 범위
__7.2.4 수평선과 수직선
__7.2.5 면적 채색하기
__7.2.6 축과 눈금
__7.2.7 격자와 배경 및 여백
__7.2.8 텍스트
__7.2.9 출력 및 저장
__7.2.10 색
_7.3 서브 플롯과 레이아웃
__7.3.1 정형 그리드
__7.3.2 비정형 그리드
__7.3.3 제목
Part8 시각화(2) - 각종 그래프 및 시각화 양식
_8.1 막대그래프
_8.2 히스토그램
_8.3 점도표
_8.4 히트맵
__8.4.1 히트맵 그리기
__8.4.2 컬러바 범위 제한하기
__8.4.3 도메인 지정하기
_8.5 박스 플롯
__8.5.1 박스 플롯 그리기
__8.5.2 배열로 그리기
__8.5.3 데이터 프레임으로 그리기
__8.5.4 평균 표시하기
_8.6 다양한 그림 양식
__8.6.1 벡터 필드
__8.6.2 파이 차트
__8.6.3 극좌표계
__8.6.4 3차원 그림
_8.7 애니메이션과 동영상
Author
류대식,전기현
경북대학교 이학사(통계학), 경북대학교 공학사(빅데이터), 경북대학교 이학석사(수학).
경북대학교 수학부에서 비선형 동역학nonlinear dynamics 전공으로 박사 과정을 밟고 있다. 연구 주제는 데이터 기반 모형data-driven model 및 인구 동역학population dynamics이고 의료 데이터의 시계열 분석에 관한 논문과 유체에서의 열 확산 예측을 위한 인공신경망 관련 논문을 출간했다. 기업 과제에서는 유전 알고리즘을 응용해 협업한 바 있다.
경북대학교 이학사(통계학), 경북대학교 공학사(빅데이터), 경북대학교 이학석사(수학).
경북대학교 수학부에서 비선형 동역학nonlinear dynamics 전공으로 박사 과정을 밟고 있다. 연구 주제는 데이터 기반 모형data-driven model 및 인구 동역학population dynamics이고 의료 데이터의 시계열 분석에 관한 논문과 유체에서의 열 확산 예측을 위한 인공신경망 관련 논문을 출간했다. 기업 과제에서는 유전 알고리즘을 응용해 협업한 바 있다.