ປັນຍາປະດິດ (AI) ໄດ້ຮັບຄວາມນິຍົມຢ່າງຫຼວງຫຼາຍໃນຊຸມປີມໍ່ໆມານີ້.
ຖ້າທ່ານເປັນວິສະວະກອນຊອບແວ, ນັກວິທະຍາສາດຄອມພິວເຕີ, ຫຼືຜູ້ທີ່ກະຕືລືລົ້ນວິທະຍາສາດຂໍ້ມູນໂດຍທົ່ວໄປ, ທ່ານອາດຈະສົນໃຈກັບຄໍາຮ້ອງສະຫມັກທີ່ຫນ້າປະຫລາດໃຈຂອງການປຸງແຕ່ງຮູບພາບ, ການຮັບຮູ້ຮູບແບບແລະການກວດພົບວັດຖຸທີ່ສະຫນອງໃຫ້ໂດຍພາກສະຫນາມນີ້.
ພາກສະຫນາມຍ່ອຍທີ່ສໍາຄັນທີ່ສຸດຂອງ AI ທີ່ທ່ານອາດຈະໄດ້ຍິນກ່ຽວກັບແມ່ນການຮຽນຮູ້ເລິກ. ພາກສະຫນາມນີ້ເນັ້ນໃສ່ລະບົບສູດການຄິດໄລ່ທີ່ມີປະສິດທິພາບ (ຄໍາແນະນໍາກ່ຽວກັບໂຄງການຄອມພິວເຕີ) ແບບຈໍາລອງການທໍາງານຂອງສະຫມອງຂອງມະນຸດທີ່ເອີ້ນວ່າ Neural Networks.
ໃນບົດຄວາມນີ້, ພວກເຮົາຈະໄປກ່ຽວກັບແນວຄວາມຄິດຂອງ Neural Networks ແລະວິທີການສ້າງ, ລວບລວມ, ເຫມາະແລະປະເມີນຮູບແບບເຫຼົ່ານີ້ໂດຍໃຊ້ Python.
Neural Networks
Neural Networks, ຫຼື NNs, ແມ່ນຊຸດຂອງສູດການຄິດໄລ່ທີ່ສ້າງແບບຈໍາລອງຫຼັງຈາກກິດຈະກໍາທາງຊີວະພາບຂອງສະຫມອງຂອງມະນຸດ. ເຄືອຂ່າຍ neural ປະກອບດ້ວຍຂໍ້, ເອີ້ນວ່າ neurons.
ຄໍເລັກຊັນຂອງຂໍ້ແນວຕັ້ງແມ່ນເປັນທີ່ຮູ້ຈັກເປັນຊັ້ນ. ຮູບແບບປະກອບດ້ວຍຫນຶ່ງ input, ຫນຶ່ງ output, ແລະຈໍານວນຂອງຊັ້ນເຊື່ອງໄວ້. ແຕ່ລະຊັ້ນປະກອບດ້ວຍຂໍ້, ເອີ້ນວ່າ neurons, ບ່ອນທີ່ການຄິດໄລ່ເກີດຂຶ້ນ.
ໃນແຜນວາດຕໍ່ໄປນີ້, ວົງມົນເປັນຕົວແທນຂອງ nodes ແລະການເກັບກໍາຂໍ້ຕັ້ງຂອງ nodes ເປັນຕົວແທນຂອງຊັ້ນຕ່າງໆ. ຮູບແບບນີ້ມີສາມຊັ້ນ.
nodes ຂອງຊັ້ນຫນຶ່ງແມ່ນເຊື່ອມຕໍ່ກັບຊັ້ນຕໍ່ໄປໂດຍຜ່ານສາຍສົ່ງຕາມທີ່ເຫັນຂ້າງລຸ່ມນີ້.
ຊຸດຂໍ້ມູນຂອງພວກເຮົາປະກອບດ້ວຍຂໍ້ມູນທີ່ຕິດສະຫຼາກ. ນີ້ຫມາຍຄວາມວ່າແຕ່ລະຫນ່ວຍງານຂໍ້ມູນໄດ້ຖືກມອບຫມາຍຄ່າຊື່ທີ່ແນ່ນອນ.
ດັ່ງນັ້ນສໍາລັບຊຸດຂໍ້ມູນການຈັດປະເພດສັດພວກເຮົາຈະມີຮູບພາບຂອງແມວແລະຫມາເປັນຂໍ້ມູນຂອງພວກເຮົາ, ໂດຍມີ 'ແມວ' ແລະ 'ຫມາ' ເປັນປ້າຍຂອງພວກເຮົາ.
ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະສັງເກດວ່າປ້າຍຊື່ຈໍາເປັນຕ້ອງຖືກປ່ຽນເປັນຄ່າຕົວເລກສໍາລັບຕົວແບບຂອງພວກເຮົາເພື່ອເຮັດໃຫ້ຄວາມຮູ້ສຶກຂອງມັນ, ດັ່ງນັ້ນປ້າຍສັດຂອງພວກເຮົາກາຍເປັນ '0' ສໍາລັບແມວແລະ '1' ສໍາລັບຫມາ. ທັງຂໍ້ມູນແລະປ້າຍຊື່ແມ່ນຜ່ານຕົວແບບ.
ການຮຽນຮູ້
ຂໍ້ມູນຖືກປ້ອນໃຫ້ກັບຕົວແບບໜຶ່ງຫົວໜ່ວຍໃນແຕ່ລະຄັ້ງ. ຂໍ້ມູນນີ້ຖືກແບ່ງອອກເປັນຕ່ອນແລະຜ່ານແຕ່ລະຂໍ້ຂອງຕົວແບບ. Nodes ດໍາເນີນການທາງຄະນິດສາດຢູ່ໃນ chunks ເຫຼົ່ານີ້.
ທ່ານບໍ່ຈໍາເປັນຕ້ອງຮູ້ຫນ້າທີ່ທາງຄະນິດສາດຫຼືການຄິດໄລ່ສໍາລັບການສອນນີ້, ແຕ່ມັນເປັນສິ່ງສໍາຄັນທີ່ຈະມີຄວາມຄິດທົ່ວໄປກ່ຽວກັບວິທີທີ່ຕົວແບບເຫຼົ່ານີ້ເຮັດວຽກ. ຫຼັງຈາກຊຸດຂອງການຄິດໄລ່ໃນຊັ້ນດຽວ, ຂໍ້ມູນຖືກສົ່ງຜ່ານຊັ້ນຕໍ່ໄປແລະອື່ນໆ.
ເມື່ອສໍາເລັດ, ຮູບແບບຂອງພວກເຮົາຄາດຄະເນປ້າຍຂໍ້ມູນຢູ່ໃນຊັ້ນຜົນຜະລິດ (ຕົວຢ່າງ, ໃນບັນຫາການຈັດປະເພດສັດພວກເຮົາໄດ້ຮັບການຄາດຄະເນ '0' ສໍາລັບແມວ).
ຮູບແບບດັ່ງກ່າວສືບຕໍ່ປຽບທຽບມູນຄ່າທີ່ຄາດຄະເນນີ້ກັບມູນຄ່າຂອງປ້າຍຕົວຈິງ.
ຖ້າຄ່າກົງກັນ, ຕົວແບບຂອງພວກເຮົາຈະເອົາຂໍ້ມູນໃສ່ຕໍ່ໄປ ແຕ່ຖ້າຄ່າແຕກຕ່າງກັນ ຕົວແບບຈະຄິດໄລ່ຄວາມແຕກຕ່າງລະຫວ່າງຄ່າທັງສອງ, ເອີ້ນວ່າການສູນເສຍ, ແລະປັບການຄຳນວນຂອງໂນດເພື່ອຜະລິດປ້າຍທີ່ກົງກັນໃນຄັ້ງຕໍ່ໄປ.
ຂອບການຮຽນຮູ້ທີ່ເລິກເຊິ່ງ
ເພື່ອສ້າງເຄືອຂ່າຍ Neural ໃນລະຫັດ, ພວກເຮົາຈໍາເປັນຕ້ອງນໍາເຂົ້າ ກອບການຮຽນຮູ້ເລິກເຊິ່ງ ຮູ້ຈັກເປັນຫ້ອງສະໝຸດໂດຍໃຊ້ສະພາບແວດລ້ອມການພັດທະນາແບບປະສົມປະສານ (IDE).
ກອບເຫຼົ່ານີ້ເປັນການເກັບກໍາຂອງຫນ້າທີ່ຂຽນໄວ້ລ່ວງຫນ້າທີ່ຈະຊ່ວຍໃຫ້ພວກເຮົາໃນ tutorial ນີ້. ພວກເຮົາຈະໃຊ້ກອບ Keras ເພື່ອສ້າງຕົວແບບຂອງພວກເຮົາ.
Keras ເປັນຫ້ອງສະຫມຸດ Python ທີ່ໃຊ້ການຮຽນຮູ້ເລິກເຊິ່ງແລະປັນຍາປະດິດທີ່ເອີ້ນວ່າ backend ການໄຫຼ tensor ເພື່ອສ້າງ NNs ໃນຮູບແບບຂອງແບບລໍາດັບທີ່ງ່າຍດາຍດ້ວຍຄວາມສະດວກສະບາຍ.
Keras ຍັງມາພ້ອມກັບຕົວແບບທີ່ມີຢູ່ແລ້ວຂອງຕົນເອງທີ່ສາມາດນໍາໃຊ້ໄດ້ເຊັ່ນກັນ. ສໍາລັບການສອນນີ້, ພວກເຮົາຈະສ້າງແບບຈໍາລອງຂອງພວກເຮົາເອງໂດຍໃຊ້ Keras.
ທ່ານສາມາດຮຽນຮູ້ເພີ່ມເຕີມກ່ຽວກັບກອບການຮຽນຮູ້ເລິກນີ້ຈາກ ເວັບໄຊທ໌ Keras.
ການສ້າງເຄືອຂ່າຍ Neural (Tutorial)
ຂໍໃຫ້ກ້າວໄປສູ່ການສ້າງ Neural Network ໂດຍໃຊ້ Python.
ຖະແຫຼງການບັນຫາ
ເຄືອຂ່າຍ Neural ແມ່ນປະເພດຂອງການແກ້ໄຂບັນຫາທີ່ອີງໃສ່ AI. ສໍາລັບການສອນນີ້ພວກເຮົາຈະໄປເບິ່ງຂໍ້ມູນ Pima Indians Diabetes Data, ເຊິ່ງມີຢູ່ ທີ່ນີ້.
ICU ການຮຽນຮູ້ເຄື່ອງຈັກໄດ້ລວບລວມຊຸດຂໍ້ມູນນີ້ ແລະມີບັນທຶກທາງການແພດຂອງຄົນເຈັບອິນເດຍ. ຮູບແບບຂອງພວກເຮົາຕ້ອງຄາດຄະເນວ່າຄົນເຈັບມີອາການເບົາຫວານພາຍໃນ 5 ປີຫຼືບໍ່.
ກຳລັງໂຫຼດຊຸດຂໍ້ມູນ
ຊຸດຂໍ້ມູນຂອງພວກເຮົາແມ່ນໄຟລ໌ CSV ດຽວທີ່ເອີ້ນວ່າ 'diabetes.csv' ທີ່ສາມາດຈັດການໄດ້ງ່າຍໂດຍໃຊ້ Microsoft Excel.
ກ່ອນທີ່ຈະສ້າງຮູບແບບຂອງພວກເຮົາ, ພວກເຮົາຈໍາເປັນຕ້ອງໄດ້ນໍາເຂົ້າຊຸດຂໍ້ມູນຂອງພວກເຮົາ. ການນໍາໃຊ້ລະຫັດດັ່ງຕໍ່ໄປນີ້ທ່ານສາມາດເຮັດໄດ້:
pandas ນຳ ເຂົ້າເປັນ pd
ຂໍ້ມູນ = pd.read_csv('diabetes.csv')
x = data.drop(“ຜົນໄດ້ຮັບ”)
y = ຂໍ້ມູນ[“ຜົນໄດ້ຮັບ”]
ທີ່ນີ້ພວກເຮົາກໍາລັງໃຊ້ Pandas ຫ້ອງສະຫມຸດເພື່ອໃຫ້ສາມາດຈັດການຂໍ້ມູນໄຟລ໌ CSV ຂອງພວກເຮົາ, read_csv() ເປັນຫນ້າທີ່ສ້າງໃນຕົວຂອງ Pandas ທີ່ອະນຸຍາດໃຫ້ພວກເຮົາເກັບຄ່າໃນໄຟລ໌ຂອງພວກເຮົາໃຫ້ກັບຕົວແປທີ່ເອີ້ນວ່າ 'ຂໍ້ມູນ'.
ຕົວແປ x ມີຊຸດຂໍ້ມູນຂອງພວກເຮົາໂດຍບໍ່ມີຂໍ້ມູນຜົນໄດ້ຮັບ (ປ້າຍຊື່). ພວກເຮົາບັນລຸອັນນີ້ດ້ວຍຟັງຊັນ data.drop() ທີ່ເອົາປ້າຍກຳກັບ x, ໃນຂະນະທີ່ y ມີຂໍ້ມູນຜົນໄດ້ຮັບ (ປ້າຍກຳກັບ) ເທົ່ານັ້ນ.
ການສ້າງຕົວແບບຕາມລໍາດັບ
ຂັ້ນຕອນທີ 1: ການນໍາເຂົ້າຫ້ອງສະຫມຸດ
ກ່ອນອື່ນ ໝົດ, ພວກເຮົາຕ້ອງການນໍາເຂົ້າ TensorFlow ແລະ Keras, ພ້ອມກັບຕົວກໍານົດການທີ່ແນ່ນອນທີ່ຕ້ອງການສໍາລັບຕົວແບບຂອງພວກເຮົາ. ລະຫັດຕໍ່ໄປນີ້ອະນຸຍາດໃຫ້ພວກເຮົາເຮັດສິ່ງນີ້:
ນໍາເຂົ້າ tensorflow ເປັນ tf
ຈາກ tensorflow keras ນໍາເຂົ້າ
ຈາກ tensorflow.keras.models ນໍາເຂົ້າ Sequential
ຈາກ tensorflow.keras.layers ການນໍາເຂົ້າການເປີດໃຊ້, ຄວາມຫນາແຫນ້ນ
ຈາກ tensorflow.keras.optimizers ນໍາເຂົ້າອາດາມ
ຈາກ tensorflow.keras.metrics ນໍາເຂົ້າ categorical_crossentropy
ສໍາລັບຮູບແບບຂອງພວກເຮົາພວກເຮົາກໍາລັງນໍາເຂົ້າຊັ້ນຫນາແຫນ້ນ. ເຫຼົ່ານີ້ແມ່ນຊັ້ນທີ່ເຊື່ອມຕໍ່ຢ່າງເຕັມສ່ວນ; ie, ແຕ່ລະ node ໃນ layer ແມ່ນເຊື່ອມຕໍ່ຢ່າງເຕັມສ່ວນກັບ node ອື່ນໃນ layer ຕໍ່ໄປ.
ພວກເຮົາຍັງນໍາເຂົ້າ ການກະຕຸ້ນ ຟັງຊັນທີ່ຈໍາເປັນສໍາລັບການຂະຫຍາຍຂໍ້ມູນທີ່ຖືກສົ່ງໄປຫາ nodes. ທີ່ດີທີ່ສຸດ ຍັງໄດ້ຖືກນໍາເຂົ້າເພື່ອຫຼຸດຜ່ອນການສູນເສຍ.
Adam ເປັນ optimizer ທີ່ມີຊື່ສຽງທີ່ເຮັດໃຫ້ການຄິດໄລ່ node ການປັບປຸງແບບຈໍາລອງຂອງພວກເຮົາມີປະສິດທິພາບຫຼາຍຂຶ້ນ, ພ້ອມກັບ categorical_crossentropy ຊຶ່ງເປັນ ປະເພດຂອງຟັງຊັນການສູນເສຍ (ຄິດໄລ່ຄວາມແຕກຕ່າງລະຫວ່າງມູນຄ່າປ້າຍຕົວຈິງແລະການຄາດຄະເນ) ທີ່ພວກເຮົາຈະໃຊ້.
ຂັ້ນຕອນທີ 2: ການອອກແບບຕົວແບບຂອງພວກເຮົາ
ຮູບແບບທີ່ຂ້ອຍສ້າງມີຫນຶ່ງ input (ມີ 16 ຫນ່ວຍ), ຫນຶ່ງເຊື່ອງໄວ້ (ມີ 32 ຫນ່ວຍ) ແລະຫນຶ່ງຜົນຜະລິດ (ມີ 2 ຫນ່ວຍ) ຊັ້ນ. ຕົວເລກເຫຼົ່ານີ້ບໍ່ໄດ້ຖືກແກ້ໄຂແລະຈະຂຶ້ນກັບບັນຫາທັງຫມົດ.
ການກໍານົດຈໍານວນຫົວຫນ່ວຍແລະຊັ້ນທີ່ເຫມາະສົມແມ່ນຂະບວນການທີ່ສາມາດປັບປຸງເວລາລ່ວງເວລາຜ່ານການປະຕິບັດ. ການເປີດໃຊ້ວຽກກົງກັບປະເພດຂອງການຂະຫຍາຍທີ່ພວກເຮົາຈະປະຕິບັດຂໍ້ມູນຂອງພວກເຮົາກ່ອນທີ່ຈະຜ່ານມັນຜ່ານ node.
Relu ແລະ Softmax ແມ່ນຫນ້າທີ່ເປີດໃຊ້ງານທີ່ມີຊື່ສຽງສໍາລັບວຽກງານນີ້.
model = ລໍາດັບ([
Dense(units = 16, input_shape = (1,), activation = 'relu'),
ຄວາມຫນາແຫນ້ນ (ຫນ່ວຍ = 32, ການເປີດໃຊ້ = 'relu'),
Dense(ຫົວໜ່ວຍ = 2, ການເປີດໃຊ້ງານ = 'softmax')
])
ນີ້ແມ່ນສິ່ງທີ່ສະຫຼຸບຂອງຕົວແບບຄວນເບິ່ງຄື:
ການຝຶກອົບຮົມຕົວແບບ
ຮູບແບບຂອງພວກເຮົາຈະໄດ້ຮັບການຝຶກອົບຮົມໃນສອງຂັ້ນຕອນ, ທໍາອິດແມ່ນການລວບລວມຕົວແບບ (ການວາງຕົວແບບຮ່ວມກັນ) ແລະຕໍ່ໄປແມ່ນການປັບຕົວແບບໃນຊຸດຂໍ້ມູນ.
ອັນນີ້ສາມາດເຮັດໄດ້ໂດຍໃຊ້ຟັງຊັນ model.compile() ຕາມດ້ວຍຟັງຊັນ model.fit().
model.compile(optimizer = Adam(learning_rate = 0.0001), loss = 'binary_crossentropy', metrics = ['accuracy'])
model.fit(x, y, epochs = 30, batch_size = 10)
ການກໍານົດ 'ຄວາມຖືກຕ້ອງ' metric ອະນຸຍາດໃຫ້ພວກເຮົາສັງເກດເຫັນຄວາມຖືກຕ້ອງຂອງຕົວແບບຂອງພວກເຮົາໃນລະຫວ່າງການຝຶກອົບຮົມ.
ເນື່ອງຈາກປ້າຍຂອງພວກເຮົາຢູ່ໃນຮູບແບບຂອງ 1's ແລະ 0's, ພວກເຮົາຈະນໍາໃຊ້ຫນ້າທີ່ສູນເສຍຖານສອງເພື່ອຄິດໄລ່ຄວາມແຕກຕ່າງລະຫວ່າງປ້າຍຕົວຈິງແລະການຄາດຄະເນ.
ຊຸດຂໍ້ມູນຍັງຖືກແບ່ງອອກເປັນຊຸດຂອງ 10 (batch_size) ແລະຈະຖືກຖ່າຍທອດຜ່ານແບບຈໍາລອງ 30 ເທື່ອ (ຕອນ). ສໍາລັບຊຸດຂໍ້ມູນ, x ຈະເປັນຂໍ້ມູນ ແລະ y ຈະເປັນປ້າຍກຳກັບທີ່ສອດຄ້ອງກັບຂໍ້ມູນ.
ການທົດສອບແບບຈໍາລອງການນໍາໃຊ້ການຄາດເດົາ
ເພື່ອປະເມີນແບບຈໍາລອງຂອງພວກເຮົາ, ພວກເຮົາເຮັດການຄາດເດົາຂໍ້ມູນການທົດສອບໂດຍໃຊ້ຫນ້າທີ່ຄາດຄະເນ ().
ການຄາດເດົາ = model.predict(x)
ແລະນັ້ນແມ່ນມັນ!
ໃນປັດຈຸບັນທ່ານຄວນຈະມີຄວາມເຂົ້າໃຈດີຂອງ Deep Learning ຄໍາຮ້ອງສະຫມັກ, Neural Networks, ວິທີການເຮັດວຽກໂດຍທົ່ວໄປແລະວິທີການສ້າງ, ການຝຶກອົບຮົມແລະການທົດສອບຕົວແບບໃນລະຫັດ Python.
ຂ້ອຍຫວັງວ່າບົດສອນນີ້ເຮັດໃຫ້ເຈົ້າມີຈຸດເລີ່ມຕົ້ນໃນການສ້າງ ແລະນຳໃຊ້ຮູບແບບການຮຽນຮູ້ແບບເລິກລັບຂອງເຈົ້າເອງ.
ໃຫ້ພວກເຮົາຮູ້ໃນຄໍາເຫັນຖ້າບົດຄວາມເປັນປະໂຫຍດ.
ອອກຈາກ Reply ເປັນ