메인화면

 

Replit (https://replit.com/)는 클라우드 기반의 통합 개발 환경(IDE) 및 협업 플랫폼이다.

이 플랫폼을 사용하면 개발자들이 웹 브라우저를 통해 다양한 프로그래밍 언어로 코드를 작성하고 실행할 수 있다.

주요기능

  • 다양한 프로그래밍 언어 지원: Replit은 Python, JavaScript, Java, C++, Ruby 등 여러 프로그래밍 언어를 지원함
    사용자는 원하는 언어를 선택하고 즉시 코딩을 시작할 수 있음
  • 브라우저 기반: 별도의 소프트웨어 설치 없이 웹 브라우저에서 직접 코딩할 수 있음
    이는 어디서나 접근이 가능하다는 의미이다.
  • 실시간 협업: Replit은 Google Docs와 유사하게 여러 사용자가 동시에 같은 프로젝트에서 작업할 수 있는 실시간 협업 기능을 제공함. 이는 팀 프로젝트나 멘토링 세션에 유용함
  • 자동 저장 및 버전 관리: 작성한 코드는 자동으로 저장됨
    변경 내역을 관리할 수 있어 이전 버전으로 쉽게 돌아갈 수 있음
  • 내장 터미널: Replit은 내장 터미널을 제공
    사용자가 명령어를 실행하거나 서버를 관리할 수 있음
  • 패키지 관리자 통합: 각 프로그래밍 언어에 맞는 패키지 관리자(NPM, pip 등)가 통합되어 있음.
    필요한 라이브러리를 쉽게 설치하고 사용할 수 있음
    Template 선택 화면

장점

  • 접근성: 클라우드 기반이므로 언제 어디서 프로젝트에 접근 가능함.
  • 초보자 친화적: 사용자 인터페이스가 직관적이며, 코드 작성을 바로 시작할 수 있어 프로그래밍을 처음 접하는 사람들에게도 유용함.
  • 강력한 협업 기능: 실시간으로 코드를 함께 작성하고 수정할 수 있어 원격 작업이나 교육 환경에서 도움이 됨
  • 다양한 통합 기능: GitHub 연동, 교육자를 위한 클래스룸 기능 등 다양한 기능을 제공하여 활용 범위를 넓혀줌
  • 무료 및 유료 플랜: 개인 사용자는 무료로 기본 기능을 사용할 수 있음
    더 많은 리소스나 추가 기능이 필요한 경우 유료 플랜을 선택할 수 있음

 

작업환경

'Computers > AI' 카테고리의 다른 글

[도서/목차] 밑바닥부터 시작하는 딥러닝  (0) 2024.06.13
퍼셉트론  (0) 2024.06.04
제미나이 프롬프트 작성요령  (0) 2024.05.21

1장 헬로 파이썬

1.1 파이썬이란?

1.2 파이썬 설치하기

    1.2.1 파이썬 버전

    1.2.2 사용하는 외부 라이브러리

    1.2.3 아나콘다 배포판

1.3 파이썬 인터프리터 

    1.3.1 산술 연산 

    1.3.2 자료형 

    1.3.3 변수 

    1.3.4 리스트 

    1.3.5 딕셔너리

    1.3.6 bool 

    1.3.7 if 문 

    1.3.8 for 문 

    1.3.9 함수 

1.4 파이썬 스크립트 파일 

    1.4.1 파일로 저장하기 

    1.4.2 클래스 

1.5 넘파이 

    1.5.1 넘파이 가져오기 

    1.5.2 넘파이 배열 생성하기 

    1.5.3 넘파이의 산술 연산 

    1.5.4 넘파이의 N차원 배열 

    1.5.5 브로드캐스트 

    1.5.6 원소 접근 

1.6 matplotlib 

    1.6.1 단순한 그래프 그리기 

    1.6.2 pyplot의 기능 

    1.6.3 이미지 표시하기 

1.7 정리 

 

2장 퍼셉트론

2.1 퍼셉트론이란? 

2.2 단순한 논리 회로 

    2.2.1 AND 게이트 

    2.2.2 NAND 게이트와 OR 게이트 

2.3 퍼셉트론 구현하기 

    2.3.1 간단한 구현부터 

    2.3.2 가중치와 편향 도입 

    2.3.3 가중치와 편향 구현하기 

2.4 퍼셉트론의 한계 

    2.4.1 도전! XOR 게이트 

    2.4.2 선형과 비선형 

2.5 다층 퍼셉트론이 출동한다면 

    2.5.1 기존 게이트 조합하기 

    2.5.2 XOR 게이트 구현하기 

2.6 NAND에서 컴퓨터까지 

2.7 정리 

 

3장 신경망

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 시그모이드 함수와 계단 함수 비교 

    3.2.6 비선형 함수 

    3.2.7 ReLU 함수 

3.3 다차원 배열의 계산 

    3.3.1 다차원 배열 

    3.3.2 행렬의 내적 

    3.3.3 신경망의 내적 

3.4 3층 신경망 구현하기 

    3.4.1 표기법 설명 

    3.4.2 각 층의 신호 전달 구현하기 

    3.4.3 구현 정리 

3.5 출력층 설계하기 

    3.5.1 항등 함수와 소프트맥스 함수 구현하기 

    3.5.2 소프트맥스 함수 구현 시 주의점 

    3.5.3 소프트맥스 함수의 특징 

    3.5.4 출력층의 뉴런 수 정하기

3.6 손글씨 숫자 인식 

    3.6.1 MNIST 데이터셋 

    3.6.2 신경망의 추론 처리 

    3.6.3 배치 처리 

3.7 정리 

 

4장 신경망 학습

4.1 데이터에서 학습한다! 

    4.1.1 데이터 주도 학습 

    4.1.2 훈련 데이터와 시험 데이터 

4.2 손실 함수 

    4.2.1 평균 제곱 오차 

    4.2.2 교차 엔트로피 오차 

    4.2.3 미니배치 학습 

    4.2.4 (배치용) 교차 엔트로피 오차 구현하기 

    4.2.5 왜 손실 함수를 설정하는가? 

4.3 수치 미분 

    4.3.1 미분 

    4.3.2 수치 미분의 예 

    4.3.3 편미분 

4.4 기울기 

    4.4.1 경사법(경사 하강법) 

    4.4.2 신경망에서의 기울기 

4.5 학습 알고리즘 구현하기 

    4.5.1 2층 신경망 클래스 구현하기

    4.5.2 미니배치 학습 구현하기 

    4.5.3 시험 데이터로 평가하기 

4.6 정리 

 

5장 오차역전파법

5.1 계산 그래프 

    5.1.1 계산 그래프로 풀다 

    5.1.2 국소적 계산 

    5.1.3 왜 계산 그래프로 푸는가? 

5.2 연쇄법칙 

    5.2.1 계산 그래프에서의 역전파 

    5.2.2 연쇄법칙이란? 

    5.2.3 연쇄법칙과 계산 그래프 

5.3 역전파 

    5.3.1 덧셈 노드의 역전파 

    5.3.2 곱셈 노드의 역전파 

    5.3.3 사과 쇼핑의 예 

5.4 단순한 계층 구현하기 

    5.4.1 곱셈 계층 

    5.4.2 덧셈 계층 

5.5 활성화 함수 계층 구현하기 

    5.5.1 ReLU 계층 

    5.5.2 Sigmoid 계층 

5.6 Affine/Softmax 계층 구현하기 

    5.6.1 Affine 계층 

    5.6.2 배치용 Affine 계층 

    5.6.3 Softmax-with-Loss 계층 

5.7 오차역전파법 구현하기 

    5.7.1 신경망 학습의 전체 그림 

    5.7.2 오차역전파법을 적용한 신경망 구현하기 

    5.7.3 오차역전파법으로 구한 기울기 검증하기 

    5.7.4 오차역전파법을 사용한 학습 구현하기

5.8 정리 

 

6장 학습 관련 기술들

6.1 매개변수 갱신 

    6.1.1 모험가 이야기 

      6.1.2 확률적 경사 하강법(SGD) 

          6.1.3 SGD의 단점 

      6.1.4 모멘텀 

      6.1.5 AdaGrad 

      6.1.6 Adam 

    6.1.7 어느 갱신 방법을 이용할 것인가? 

    6.1.8 MNIST 데이터셋으로 본 갱신 방법 비교 

6.2 가중치의 초깃값 

    6.2.1 초깃값을 0으로 하면?  (오차역전파법에서 모든 가중치의 값이 똑같이 갱신되므로 초기값을 0으로 하면 안됨)

    6.2.2 은닉층의 활성화 분포 

    6.2.3 ReLU를 사용할 때의 가중치 초깃값 

    6.2.4 MNIST 데이터셋으로 본 가중치 초깃값 비교 

6.3 배치 정규화 

    6.3.1 배치 정규화 알고리즘 

    6.3.2 배치 정규화의 효과 

6.4 바른 학습을 위해 

    6.4.1 오버피팅 

    6.4.2 가중치 감소 

    6.4.3 드롭아웃 

6.5 적절한 하이퍼파라미터 값 찾기 

    6.5.1 검증 데이터 

    6.5.2 하이퍼파라미터 최적화 

    6.5.3 하이퍼파라미터 최적화 구현하기 

6.6 정리 

 

7장 합성곱 신경망(CNN)

7.1 전체 구조 

7.2 합성곱 계층 

    7.2.1 완전연결 계층의 문제점 

    7.2.2 합성곱 연산 

    7.2.3 패딩 

    7.2.4 스트라이드 

    7.2.5 3차원 데이터의 합성곱 연산 

    7.2.6 블록으로 생각하기 

    7.2.7 배치 처리 

7.3 풀링 계층 

    7.3.1 풀링 계층의 특징 

7.4 합성곱/풀링 계층 구현하기 

    7.4.1 4차원 배열 

    7.4.2 im2col로 데이터 전개하기 

    7.4.3 합성곱 계층 구현하기 

    7.4.4 풀링 계층 구현하기 

7.5 CNN 구현하기 

7.6 CNN 시각화하기 

    7.6.1 1번째 층의 가중치 시각화하기 

    7.6.2 층 깊이에 따른 추출 정보 변화 

7.7 대표적인 CNN 

    7.7.1 LeNet 

    7.7.2 AlexNet 

7.8 정리 

 

8장 딥러닝

8.1 더 깊게 

    8.1.1 더 깊은 네트워크로 

    8.1.2 정확도를 더 높이려면 

    8.1.3 깊게 하는 이유 

8.2 딥러닝의 초기 역사 

    8.2.1 이미지넷 

    8.2.2 VGG 

    8.2.3 GoogLeNet 

    8.2.4 ResNet 

8.3 더 빠르게(딥러닝 고속화) 

    8.3.1 풀어야 할 숙제 

    8.3.2 GPU를 활용한 고속화 

    8.3.3 분산 학습 

    8.3.4 연산 정밀도와 비트 줄이기 

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 Deep Q-Network(강화학습) 

8.6 정리 

 

부록 A Softmax-with-Loss 계층의 계산 그래프

A.1 순전파 

A.2 역전파 

A.3 정리 

참고문헌 

'Computers > AI' 카테고리의 다른 글

Replite (read-eval-print loop, 읽고-계산하고-출력하는 루프)  (0) 2024.06.13
퍼셉트론  (0) 2024.06.04
제미나이 프롬프트 작성요령  (0) 2024.05.21

개요

퍼셉트론은 기계 학습과 인공지능의 기초를 이루는 간단한 형태의 인공 신경망이다.
1950년대 말에 프랭크 로젠블랫이라는 과학자가 개발했으며, 이는 컴퓨터가 데이터를 학습하고 패턴을 인식하는 방식을 설명하기 위해 고안되었다.
퍼셉트론은 크게 세 가지 부분( 입력층, 가중치, 출력층 )으로 나뉜다.

입력층

입력층은 퍼셉트론이 학습하는 데이터 포인트를 의미한다

예를 들어, 숫자를 인식하는 퍼셉트론에서는 각 숫자의 픽셀 값이 입력으로 사용될 수 있다.


가중치 

각 입력에는 가중치라는 값이 부여된다.

이 가중치는 퍼셉트론이 각 입력의 중요성을 얼마나 높게 평가하는지를 나타낸다.

처음에는 가중치가 임의의 값으로 설정되지만, 학습 과정을 통해 조정된다.

출력층

입력값과 가중치의 곱을 모두 합산한 뒤, 이를 활성화 함수라는 수학적 함수를 통해 변환하여 최종 출력을 생성한다.

이 출력이 퍼셉트론의 예측값이다.

퍼셉트론의 작동 과정

- 각 입력값에 해당하는 가중치를 곱함
- 이 값을 모두 더한 후, 합산된 값을 활성화 함수에 통과시킴

- 활성화 함수는 이 합을 바탕으로 최종 출력을 결정함
  예를 들어, 합이 특정 임계값을 넘으면 '1'을 출력하고, 그렇지 않으면 '0'을 출력하는 방식입니다.


퍼셉트론의 학습 과정은 주어진 입력 데이터와 실제 출력 값을 비교하면서 가중치를 조정하는 방식으로 진행된다. 

이를 통해 퍼셉트론은 점점 더 정확하게 데이터를 분류하거나 예측할 수 있게 된다.

퍼셉트론은 단순한 문제 해결에는 유용하지만, XOR 문제와 같은 비선형 문제를 해결할 수 없는 한계가 있다.

이러한 한계를 극복하기 위해 다층 퍼셉트론(MLP)과 같은 더 복잡한 신경망 구조가 개발되었다.

효과적인 프롬프트를 작성할 때 고려해야 할 주요 4가지 영역

- 모두 사용할 필요는 없지만, 몇 가지를 활용하면 도움이 될 것임

 

1) Persona (페르소나, 인물)

2) Task (작업)

3) Context (문맥)

4) Format (형식)

 

예시 

당신은 Cloud 프로그램 매니저입니다. [내용]을 바탕으로 [사람]에게 보낼 경영진 요약 이메일 초안을 작성하십시오. 불렛 포인트로 작성해 주세요.

 

1) 자연어를 사용: 사람에게 말하는 것처럼 프롬프트를 작성, 완전한 문장으로 표현
2) 구체적이고 반복적으로 메시지를 전달: 원하는것(요약, 작성, 수정 등)을 말해라, 가능한 많은 문맥(맥락)을 제시 
3) 간결하고 복잡하지 않게 작성: 간단하지만 구체적인 언어로 요청, 전문 용어는 피하는 것이 좋음
4) 대화:  결과가 기대에 미치지 않거나 개선의 여지가 있다고 생각되면 프롬프트를 세밀하게 조정, 후속 프롬프트와 반복적인 검토 및 수정 과정을 통해 더 나은 결과를 도출 

 

+ Recent posts