chatGPT2024. 4. 8. 21:17

 

질문

AI와 현재는 관련없는 사람이다. 앞으로 관련 업무를 할지도 모른다. AI공부 프로그래밍 공부가 필요하니? 지식만 있으면 되지 않아? 프로그래밍 왕초보이여서 꼭 공부해야할지 모르겠다.

 

ChatGPT

AI와 직접적인 관련이 없는 분야에 계시더라도 미래에 AI 업무를 할 수 있는 가능성을 염두에 두고 계신다면, 프로그래밍 기초를 학습하는 것은 여러 이유로 유익할 수 있습니다. 물론, AI의 이론적 지식만으로도 많은 이해를 얻을 수 있지만, 프로그래밍 기술을 갖추면 다음과 같은 이점을 얻을 수 있습니다:

 

  1. 실용적인 기술: 프로그래밍은 AI 알고리즘을 실제로 구현하고 실험하는 데 필수적입니다. 데이터를 처리하고, 모델을 훈련시키며, 결과를 분석하는 과정에서 프로그래밍이 큰 역할을 합니다.
  2. 더 깊은 이해: 프로그래밍을 통해 AI 모델의 내부 동작을 더 잘 이해할 수 있으며, 이는 문제 해결에 있어 보다 효과적인 접근 방법을 제시할 수 있습니다.
  3. 도구에 대한 접근성: 많은 AI 도구와 라이브러리들은 프로그래밍 언어로 접근 가능합니다. 프로그래밍을 알면 이러한 자원을 활용할 수 있습니다.
  4. 시장성: 기술 시장에서 프로그래밍 기술은 매우 요구되는 역량입니다. 이는 취업 시장에서의 경쟁력을 높일 수 있습니다.
  5. 커뮤니케이션: 프로젝트에서 개발자나 데이터 과학자와 소통할 때, 기본적인 프로그래밍 지식이 있다면 의사소통이 보다 원활해질 수 있습니다.
  6. 적응력: 기술은 끊임없이 변화하고 있습니다. 프로그래밍 능력을 갖추면 새로운 기술과 도구를 빠르게 학습하고 적응하는 데 도움이 됩니다.

 

 

Claude

군에서 AI 관련 업무를 맡게 된다면 프로그래밍 실습은 반드시 필요하지 않습니다. 다만 AI에 대한 실무적인 이해를 위해서는 프로그래밍 실습이 큰 도움이 됩니다.

AI 관련 지식만으로도 충분할 수 있지만, 그 경우 다음과 같은 한계가 있습니다:

 

  1. AI의 작동 원리에 대한 피상적인 이해
  2. AI 모델링 및 데이터 처리 과정에 대한 실무 경험 부족
  3. AI 시스템 개발/운영 시 발생하는 이슈 파악 어려움
  4. AI 기술을 실제 문제에 적용하는 능력 부족

 

따라서 AI에 대한 이론적 지식과 더불어 프로그래밍 실습을 병행하면 AI에 대한 이해도를 높일 수 있습니다. 간단한 머신러닝/딥러닝 모델을 직접 구현하고, 데이터 전처리, 모델 학습/평가 등의 과정을 경험해보는 것이 좋습니다.

하지만 꼭 프로그래밍 전문가가 될 필요는 없습니다. 목적은 AI의 동작 원리와 한계점을 파악하는 것입니다. 따라서 AI 관련 교육 프로그램에서 제공하는 실습 과정만으로도 충분할 수 있습니다.

결과적으로 AI 지식과 실무 경험을 모두 갖추면 군에서 AI 업무를 더욱 효과적으로 수행할 수 있겠지만, 상황에 따라 지식 위주로 공부하는 것도 나쁘지 않은 선택이 될 수 있습니다.

 

 

 

Googe Gemini

군에서 AI와 관련 없는 업무를 담당하고 계시더라도 앞으로 AI 관련 업무를 담당할 가능성이 있다면 AI와 프로그래밍 공부를 하는 것이 매우 유리합니다.

 

AI 관련 업무를 수행하기 위해 필요한 역량:

  • AI 지식:
    • 머신러닝, 딥러닝, 자연어처리, 컴퓨터비전 등 AI 기술의 기본 개념 및 원리 이해
    • AI 기술의 군사적 활용 사례 및 활용 방안 이해
    • AI 기술 개발 및 활용 과정에서 발생하는 윤리적 문제 인지 및 해결 방안 모색
  • 프로그래밍 능력:
    • Python, R 등 프로그래밍 언어 활용 능력
    • 데이터 분석, 모델 개발 및 평가, AI 기술 활용을 위한 프로그래밍 능력
  • 데이터 분석 능력:
    • 데이터 수집, 전처리, 분석, 시각화 능력
    • 통계, 확률 등 데이터 분석 관련 지식
  • 문제 해결 능력:
    • AI 기술을 활용하여 군사적 문제를 해결하는 능력
    • 창의적 사고 및 논리적 사고 능력

 

AI 지식만으로는 부족:

AI 관련 업무를 수행하기 위해서는 AI 지식뿐만 아니라 프로그래밍 능력, 데이터 분석 능력, 문제 해결 능력 등이 필요합니다.

 

프로그래밍 공부의 필요성:

  • AI 기술은 프로그래밍을 통해 구현됩니다.
  • 프로그래밍 능력을 갖추면 AI 기술을 직접 개발하고 활용할 수 있습니다.
  • 프로그래밍 능력은 데이터 분석, 모델 개발 및 평가 등 AI 관련 다양한 작업에 필수적입니다.

 

군에서 AI 관련 업무를 담당할 가능성이 있다면:

  • AI 기초 개념부터 프로그래밍 언어까지 단계적으로 학습하는 것이 좋습니다.
  • 온라인 강좌, 오프라인 교육 프로그램, AI 관련 서적 및 블로그 등 다양한 학습 자료를 활용할 수 있습니다.
  • AI 관련 컨퍼런스 및 밋업 참여를 통해 최신 기술 트렌드를 파악하고 네트워킹을 구축하는 것도 도움이 됩니다.

 

지속적인 학습을 통해 AI 지식과 프로그래밍 능력을 쌓는 것이 중요합니다.

프로그래밍 초보자라면:

  • Python 프로그래밍 언어를 배우는 것이 좋습니다. Python은 배우기 쉽고 AI 분야에서 가장 많이 사용되는 프로그래밍 언어입니다.
  • 온라인 강좌, 코딩 교육 프로그램 등을 통해 Python 프로그래밍 기초를 익힐 수 있습니다.
  • 프로그래밍 관련 서적 및 블로그, 유튜브 강좌 등을 활용하여 학습하는 것도 도움이 됩니다.
  • 꾸준히 연습하며 프로그래밍 실력을 향상시키는 것이 중요합니다.

 

AI 관련 업무를 담당하게 된다면, 프로그래밍 능력은 큰 경쟁력이 될 것입니다.

참고 자료:

 

AI의 프로그래밍이 하는 것과 하지 않는 것 선택할 수 있습니다.

꼭 하지 않아도 어느정도까지 이해하는데 어려움이 없을 수 있습니다.

다만, 프로그래밍을 공부하고 아는 것은 AI에 도움이 될까요? 라는 질문에 확실한 것은

AI업무와 그리고 AI의 시대를 살아가는데, 있어, 더 깊은 이해와 더 많은 도움을 준다는 부분에 대해서는 논란의 여지없이 분명 도움이 된다는 것은 분명합니다.

 

- 프로그래밍 기초를 학습하는 것은 여러 이유로 유익할 수 있습니다. (ChatGPT)

 

- 다만 AI에 대한 실무적인 이해를 위해서는 프로그래밍 실습이 큰 도움이 됩니다.(Claude)

 

- AI와 프로그래밍 공부를 하는 것이 매우 유리합니다.(Google Gemini)

 

 

만약 학습을 할 기회가 된다면 시간 투자를 하는 것, 하지 않는 것보다 하는 것이 많은 도움이 될것이라 생각해 봅니다.

Posted by 예영교육 연구소
IT/AI관련2024. 4. 4. 22:32

케라스에서 다음과 같이 우리는 간단한 신경망을 구축할 수 있다.

 

from keras.models import Sequential

from keras.layers import Dense

import numpy as np

 

# 모델 구성

model = Sequential()

model.add(Dense(8, activation='relu', input_dim=3)) # 입력 3차원, 은닉층 8유닛, ReLU 활성화

model.add(Dense(3, activation='softmax')) # 출력층 3유닛, 소프트맥스 활성화 (이진 분류)

 

모델은 다음과 같은 신경망을 구성한다.

입력층(3개 노드), 출력층(3개 노드), 은닉층(8개노드), bias 없음.

 

여기에서 기본적으로 프로그램에서는 bias 노드가 포함된다. bias는 일반적인 신경망에 포함이 된다. 프로그램으로 bias노드를 포함시키지 않으려면 다음과 같이 하면 된다.( use_bias=False )

 

model = Sequential()

model.add(Dense(8, activation='relu', input_dim=3 , use_bias=False )) # bias 제외

model.add(Dense(3, activation='softmax' , use_bias= False  )) # 출력층 3유닛, 시그모이드 활성화 (이진 분류)

 

다음과 같이 신경망이 만들어진다.

입력층(3개 노드), 출력층(3개 노드), 은닉층(8개노드), bias 없음.

 

 

bias에 유무에 대한 장단점과 관련 논문을 좀 더 다양한 내용을 찾아서 정리해 봅니다.

===============================================

Bias의 역할
 - 01. Keras에서는 model.add(Dense())에서 기본적으로 옵션을 설정하지 않으면 bias가 포함된 신경망이 된다.
 - 02. 제시된 많은 연구와 논문에 따르면 일반적으로 Bias가 포함된 신경망이 모델의 성능이 개선된다고 한다. 하지만, 모든 신경망이 그렇다는 것은 아니다.
 - 03. bias의 장단점
    bias의 장점 : 
     A. 복잡한 패턴도 학습이 가능해져, 학습 능력의 향상과 더 많은 것들을 표현할 수 있다.(일반적으로 모델 성능 향상)
        - 일반적인 신경망 모델에서는 bias가 있는 것이 보편적이다.
     B. Bias를 통해 모델의 표현력이 향상되어 복잡한 비선형함수를 학습할 수 있다.
     C. 출력층의 Bias로 경계를 쉽게 조정할 수 있어, 분류 성능이 향상될 수 있다.

    bias의 단점 : 
     A. 신경망에 Bias 항이 포함되어, 모델의 파라미터 수가 늘어난다. 모델의 복잡도가 커진다.
         - bias가 없는 경우가 유리할 때는 없애는 것이 좋다.
         - bias가 없는 경우, 모델의 파라미터 수를 줄게 되어 계산 효율성과 일반화 성능을 높일 수 있다.
     B. 네트워크 복잡성의 증가로 학습 속도가 느려질 수 있다.
     C. 때때로 모델의 성능에 부정적인 영향을 주는 경우도 있다.
     D. 출력층이 선형 함수 만을 다루는 회귀 문제에서는 bias가 불 필요할 수 있다.

=================================================
참고 자료(논문)
Revealing Model Biases: Assessing Deep Neural Networks via Recovered Sample Analysis (2023)
 - 심층 신경망의 모델 bias를 평가하는 새로운 방법을 제안하고, 이를 통해 모델의 잠재적 bias를 밝히고 있음.

Scalar Invariant Networks with Zero Bias (2022)
 - bias 없이 설계된 스칼라 불변 네트워크에 대해 논하며, 이러한 접근 방식이 모델 성능에 미치는 영향을 분석.
 - 스칼라 불변 네트워크는 bias 항을 사용하지 않고 설계되어 일반적 신경망 모델과 동일하거나 더 나은 성능을 보임.

"Do We Need Bias in Neural Network Models?" (Assaad et al., 2022)
 - 다양한 신경망 모델에서 bias 유무에 따른 성능 변화를 실험적으로 분석한 논문.
 - 대부분의 모델에서 bias 항의 존재가 모델 성능을 향상시켰음을 보였습니다.(특정 데이터셋과 모델에)

"What is being transferred in transfer learning?" (Bao et al., 2021)
 - 전이학습에서 bias 항의 역할.
 - 연구에서는 bias가 중요한 역할을 했다고 함.

"Understanding the role of bias in deep neural networks" (Deleu et al., 2020)
 - 딥러닝 모델의 bias 항 역할에 대해 이론적, 실험적으로 분석.

 "Do we need bias in convolutional neural networks?" (Avrutskiy et al., 2022)
 - CNN에서 bias 포함 여부에 따른 성능 변화를 비교.
 - 이 연구는 bias를 포함하는 것이 유리하다고 제시.

Bias Also Matters: Bias Attribution for Deep Neural Network Explanation (2019)
 - 심층 신경망의 설명에 있어 bias의 중요성을 다루며, 모델의 해석과 이해를 돕는 중요한 요소로 밝힘.

A Bias Neural Network Based on Knowledge Distillation (2018)
 - 지식 증류를 기반으로 한 bias 신경망을 탐구하며, 이를 통해 모델의 성능 향상을 실현할 수 있음을 보여줌.

Role of biases in neural network models (1997)
 - 신경망 모델에서 bias의 기본적인 역할에 대해 강조하며, 이는 모델의 정확도와 유연성 향상에 기여.

An empirical investigation of bias and variance in time series forecasting: modeling considerations and  error evaluation (2003)
 - 시계열 예측에서 bias와 분산의 영향을 실증적으로 조사하여 bias가 예측 정확도에 중요한 영향을 미친다는 것을 제시.

The role of biases in on-line learning of two-layer networks (1998)
 - 온라인 학습, 특히 두 층 네트워크에서 bias의 중요성을 조사하며, 이는 학습 과정과 결과를 향상.

 

--- 정리
일반적인 신경망은 bias가 포함되고, 일반적인 성능의 개선을 가져오고 있다. 다만, 모든 신경망과 모든 데이터에서 그런 것은 아니다. 때때로 경우에 따라 bias가 포함되지 않아도 동일한 성능을 가질 수 있다.

 

Posted by 예영교육 연구소
chatGPT2023. 12. 26. 13:14

--- chatGPT 회원 가입 설명은 여기 클릭해 주세요.

--- chatGPT API 발급 설명은 여기 클릭해 주세요.

 

ChatGPT API를 활용한 이야기를 완성해보기

(write date : 2023/12/26)
 

학습 목표

가.  ChatGPT API 키를 발급 후, 이를 활용해서 간단한 이야기를 완성을 요청을 수행해 봅니다.

 

목차

1-1 API 키 확인

1-2 구글 코랩 환경 설치

1-3 이야기 완성 요청 실습해 보기

 

 

1-1 API 키 확인

https://platform.openai.com/ 의 웹 사이트로 이동합니다.

 

그림 1-1 OpenAI 웹 사이트

 

화면 왼쪽 메뉴의 'API Key'를 선택하여 현재까지 발급받은 API Key의 이력을 확인할 수 있습니다.

그림 1-2 API Keys 선택

 

그림 1-3 API Keys의 잊어버렸을 경우, 새키 생성하기

 

만약 API Key을 잊어버렸을 경우, 다시 키를 발급받아야 합니다. 이후, 발급 받은 키를 잘 메모해 주세요. 일반적으로 메모를 해 두지 않으면 추후 이 내용을 웹 사이트에서 확인할 수 없습니다.

 

 

 

prompt 창에서 아래 명령을 이용하여 설치합니다.

pip install openai

설치가 어려운 분들은 직접 구글 코랩 환경에 설치 후, 진행하셔도 됩니다.

 

import openai
openai.api_key = “[API발급키]"

 

1-2 구글 코랩 환경 설치

pip install openai

 

구글 코랩을 실행 후, 코랩의 셀에서 위의 명령으로 설치를 진행합니다. 일반적으로 첫 설치에 에러가 발생할 경우가 있습니다.(23년 12월). 이 경우, 한번 더 설치를 진행하면 에러가 사라지게 됩니다.

 

1-3 이야기 완성 요청 실습해 보기

자 이제는 API 키를 이용해서 OpenAI 모델을 선택 후, 이야기를 완성을 요청해 보도록 하겠습니다.

아래 코드를 실행 시키기 전에 openai 설치가 완료되고, API Key가 준비된 상태이어야 합니다.

from openai import OpenAI
API_KEY = "[Your API Key]"
client = OpenAI(api_key=API_KEY)

response = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {
      "role": "system",
      "content": "이야기를 완성해 주렴"
    },
    {
      "role": "user",
      "content": "옛날 옛적에"
    }
  ],
  temperature=1,
  max_tokens=256,
  top_p=1,
  frequency_penalty=0,
  presence_penalty=0
)

print(response)

 

결과는 다음과 같습니다.

 

ChatCompletion(id='chatcmpl-8Zt0DxS1oLMCoJmjXWiEbcfIXstVs', choices=[Choice(finish_reason='length', index=0, logprobs=None, message=ChatCompletionMessage(content='먼 옛날, 한 작은 마을에서 평화롭게 살던 사람들이 있었다. 이 작은 마을은 푸른 언덕 위에 위치해 있어 산책하며 자연을 즐기기에 안성맞춤이었다. 마을 주변에는 아름다운 밭과 강, 그리고 울창한 숲들이 이어져 있었다.\n\n이 작은 마을은 주민 모두가 서로를 알고 지내는 화목한 곳이었다. 사람들은 서로를 도와주고 존중하는 마음으로 함께 일하며, 동시에 즐겁게 놀기도 했다. 주민들은 인정하고 사랑받을 때마다 마을 전체에 상이 울리는 큰 종소리를 치는 전통을 가지고 있었다.\n\n그러 어', role='assistant', function_call=None, tool_calls=None))], created=1703563601, model='gpt-3.5-turbo-0613', object='chat.completion', system_fingerprint=None, usage=CompletionUsage(completion_tokens=255, prompt_tokens=30, total_tokens=285))

 

 

여기에서 메시지만 확인하려면 다음과 같이 코드를 작성하면 됩니다. 

response.choices[0].message.content

 

 

결과는 다음과 같습니다. 아래와 같이 결과가 끊겨질 경우, max_tokens를 크게 설정을 해 주세요.

먼 옛날, 한 작은 마을에서 평화롭게 살던 사람들이 있었다. 이 작은 마을은 푸른 언덕 위에 위치해 있어 산책하며 자연을 즐기기에 안성맞춤이었다. 마을 주변에는 아름다운 밭과 강, 그리고 울창한 숲들이 이어져 있었다.

이 작은 마을은 주민 모두가 서로를 알고 지내는 화목한 곳이었다. 사람들은 서로를 도와주고 존중하는 마음으로 함께 일하며, 동시에 즐겁게 놀기도 했다. 주민들은 인정하고 사랑받을 때마다 마을 전체에 상이 울리는 큰 종소리를 치는 전통을 가지고 있었다.

그러던 어

 

 

정상적으로 실행이 완료되면 위와 같이 질문에 chagGPT가 답변을 합니다.

 

 

오늘 하루도 좋은 하루가 되시길.

 

여러분이 땀이 노력이 결실이 맺기를 응원합니다.

파이팅입니다.

 

 

 

Posted by 예영교육 연구소