Ainsteinx Logo
Ainsteinx
👤
ຍິນດີຕ້ອນຮັບສູ່ Ainsteinx
ເຂົ້າສູ່ລະບົບ

ປ່ຽນພາສາ

ສະກຸນເງິນ

ໜ້າທຳອິດ
ບົດຄວາມ
ບໍລິການ
ບົດ 01 · ແນະນຳ

Generative Modeling ແມ່ນຫຍັງ?

ຮຽນຮູ້ p(x) ຈາກຂໍ້ມູນ ແລ້ວສ້າງຂໍ້ມູນໃໝ່ທີ່ບໍ່ເຄີຍມີ.

Discriminative model ຕອບຄຳຖາມ "ຮູບນີ້ແມ່ນແມວບໍ?" ສ່ວນ generative model ຮຽນວ່າຂໍ້ມູນທັງໝົດມີລັກສະນະແນວໃດ (ການກະຈາຍ p(x)) ແລ້ວສຸ່ມສ້າງຕົວຢ່າງໃໝ່ຈາກມັນ.

ໂຄດຕົວຢ່າງນ້ອຍທີ່ສຸດ: ຮຽນຄວາມສູງຂອງຄົນ 1,000 ຄົນເປັນການກະຈາຍປົກກະຕິ ແລ້ວ "ສ້າງຄົນໃໝ່" 5 ຄົນ ແລະ ວັດວ່າຄວາມສູງໃດໜ້າເຊື່ອຖືປານໃດ.

Discriminativeຮຽນ p(y | x): ຈາກຂໍ້ມູນ → ຄຳຕອບ
Generativeຮຽນ p(x): ແລ້ວສຸ່ມ x ໃໝ່ທີ່ຄ້າຍຂໍ້ມູນຈິງ

6 ຄອບຄົວຂອງ generative model

ວິທີຄອບຄົວບົດ
ສ້າງ p(x) ແບບປະມານVAE · Energy-based · Diffusion3 · 7 · 8
ສ້າງ p(x) ໂດຍກົງ ແຕ່ຈຳກັດຮູບແບບAutoregressive · Normalizing flow5 · 6
ບໍ່ສ້າງ p(x) ເລີຍ ແຕ່ສຸ່ມເປັນGAN4

ສິ່ງທີ່ຄວນຈື່

  • ເປົ້າໝາຍ: ຮຽນ p(x) ຂອງຂໍ້ມູນ ແລ້ວສຸ່ມຂໍ້ມູນໃໝ່ທີ່ໜ້າເຊື່ອ
  • Likelihood ບອກວ່າຂໍ້ມູນໃດ "ໜ້າເປັນໄປໄດ້" ພາຍໃຕ້ model
generative-ai-ep01-generative-modeling.py
import numpy as np

# A generative model learns p(x) from data, then samples new x from it.
rng = np.random.default_rng(0)
heights = rng.normal(170, 7, size=1000)          # "real" data we observe

mu, sigma = heights.mean(), heights.std()        # learn p(x) = N(mu, sigma^2)
new_people = rng.normal(mu, sigma, size=5)       # generate new samples

print(f"learned  mu={mu:.1f}  sigma={sigma:.1f}")
print("generated:", np.round(new_people, 1))
# Likelihood tells how plausible a value is under the model
for x in (170, 200):
    p = np.exp(-(x - mu) ** 2 / (2 * sigma ** 2)) / (sigma * np.sqrt(2 * np.pi))
    print(f"p({x}) = {p:.5f}")

ຜົນລັບ

learned  mu=169.7  sigma=6.8
generated: [177.8 171.7 171.  171.5 160.3]
p(170) = 0.05828
p(200) = 0.00000
  • #GenerativeAI
  • #DeepLearning
  • #PythonສຳລັບຄົນLaos
  • #AI
  • #ບອກຕໍ່ຄວາມຮູ້