핀테크특화 데이터/AI 엔지니어 핀테커스 11주차(23/11/6 월)

...·2023년 11월 6일
0

양정은T

목록 보기
9/10

-요약 : 딥러닝, 퍼셉트론, gate(and, or, xor), 2진수덧셈기

딥러닝

  • 딥러닝에서는 텐서플로우, 파이토치 사용. 최근 업계에선는 파이토치 많이 사용
  • library처럼 Import 해서 사용. 근데 이건 framework. 일정한 형식에 맞춰서 해줘야함.
  • 예시기술 : LLM(Large Language Model), 클로바노트, 유튜브 자동자막생성, 자동누끼, ai배속 윌라, 로지, 자동번역, 기상관측(구름의 양을 object detection->이걸 다른 분야에도 적용 가능 ex) 태양광사업을 위해 구름으로 인해 생긴 그림자를 detection)
  • 어떤 도메인으로 인공지능 기술을 연결하고, 문제를 해결할 수 있을지를 생각해봐야함. 그래야 나만의 스토리텔링이 됨.
  • 딥러닝에서는 수학이 더더 중요해짐.

Perceptron

  • 1950년대에 고안됨. Artificial neuron의 가장 기초적인 구조.
  • 입력2개, y라는 출력이 1개. 출력값이 1일지 0일지는, 입력값 각각에 weight를 곱해준 값이 임계점을 넘냐 안넘냐에 따라 결정됨.
  • Weight는 중요도. decision tree할 때 가중치 곱해준거랑 같음.
  • Bias는 뉴런의 활성도. 특정 임계값을 넘어야 뉴런이 활성화됨.
  • Weight와 bias는 파라미터. 모델의 성능이 좋아지는 적절한 w,b를 찾아내는 것이 딥러닝의 목표.
  • 하나의 layer안에 여러 개의 뉴런이 들어가는 것. Layer를 어떻게 구성하냐에 따라, 연산방법을 어떻게 정하냐에 따라 성능 갈림.

예시 : Auoto Encoder(AE)

LOGIC GATES

NOT GATE

  • 0이 들어오면 1을, 1이 들어오면 0을 출력하는 것.

AND GATE

OR GATE

XOR GATE

  • XOR GATE는 ‘배타적’. 홀수개의 1일때만 1 출력.
  • XOR GATE를 연구해서 밝혀내는 데에 20년이 걸림. 인공지능의 첫번째 겨울

NAND, NOR XNOR(AND, OR, XOR + NOT)

XOR GATE 구현하기

#and_gate
def and_gate(x1, x2):
  if x2 > -x1 + 1.5:
    result = 1
  else:
    result = 0
  return result

#or_gate
def or_gate(x1, x2):
  if x2 > -x1 + 0.5:
    result = 1
  else:
    result = 0
  return result
print(or_gate(0, 1))

#nand_gate
def nand_gate(x1, x2):
  if x2 > -x1 + 1.5:
    result = 0
  else:
    result = 1
  return result
print(nand_gate(0, 1))

#xor_gate
def xor_gate(x1, x2):
  p = nand_gate(x1, x2)
  q = or_gate(x1, x2)
  return and_gate(p, q)
print(xor_gate(0, 1))
  • Linear을 조합해서 un linear을 표현할 수 있게 됨. XOR problem을 해결!
  • Multi layer perceptron
  • 뉴런은 각각 weight, bias 가지고, 결과값들이 그 다음 layer로 들어가서 입력값이 됨.

Half adder

def half_adder(a, b):
  sum = xor_gate(a, b)
  if a == 1 and b == 1:
    carry = 1
  else:
    carry = 0
  return sum, carry

print(half_adder(1, 1))
  • Cin : carry in
  • Half adder

Full adder

def full_adder(a, b, c):
  p = xor_gate(a, b)
  sum = xor_gate(p, c)

  q = and_gate(p, c)
  r = and_gate(a, b)
  carryout = or_gate(q, r)
  return sum, carryout

print(full_adder(1, 1, 0))
  • 첫번째 XOR 게이트로 들어가는 값이 A, B

4비트 덧셈기

a = [0, 0, 1, 1]
b = [0, 1, 0, 1]
s = []
def four_bit(a, b):
  s0, carry = half_adder(a[0], b[0])
  s1, c1 = full_adder(a[1], b[1], carry)
  s2, c2 = full_adder(a[2], b[2], carry)
  s3, c3 = full_adder(a[3], b[3], carry)
  s = [s0, s1, s2, s3]
  return s, c3

print(four_bit(a,b))

mini project

  • linear function들의 조합으로 다음의 non-linear function을 만드세요. 지금까지 사용했던 logic gate를 이용하는 것이 아니라, 필요에 따라 새로운 함수를 만들어야 합니다.
def f1(x1, x2):
  if x2 > x1 + 0.5:
    result = 0
  else:
    result = 1
  return result

def f2(x1, x2):
  if x2 > x1 - 1.5:
    result = 1
  else:
    result = 0
  return result

def f3(x1, x2):
  if x2 > x1 - 1.5:
    result = 0
  else:
    result = 1
  return result

def result(x1, x2):
  p = f1(x1, x2)
  q = f2(x1, x2)
  return f3(p, q)

print(result(1, 1))

ㄴ아직해결못함ㅋㅋ

profile
안녕하세요를레히

0개의 댓글