Сүүлийн жилүүдэд хиймэл оюун ухаан (AI) ихээхэн алдартай болсон.
Хэрэв та програм хангамжийн инженер, компьютерийн эрдэмтэн эсвэл ерөнхийдөө мэдээллийн шинжлэх ухаанд дуртай бол энэ салбараас гаргасан дүрс боловсруулах, хэв маягийг таних, объект илрүүлэх гайхалтай хэрэглээг сонирхож байгаа байх.
Таны сонссон хиймэл оюун ухааны хамгийн чухал салбар бол гүнзгий суралцах явдал юм. Энэ талбар нь хүний тархины үйл ажиллагаа гэж нэрлэгддэг хүчирхэг алгоритмууд (компьютерийн програмын заавар) дээр төвлөрдөг. Мэдрэлийн сүлжээ.
Энэ нийтлэлд бид мэдрэлийн сүлжээний тухай ойлголт болон эдгээр загваруудыг хэрхэн бүтээх, эмхэтгэх, тохируулах, үнэлэх талаар авч үзэх болно. Python.
Мэдрэлийн сүлжээ
Мэдрэлийн сүлжээ буюу NN нь хүний тархины биологийн идэвхжилийн дагуу загварчлагдсан алгоритмуудын цуврал юм. Мэдрэлийн сүлжээ нь мэдрэлийн эс гэж нэрлэгддэг зангилаанаас бүрддэг.
Босоо зангилааны цуглуулгыг давхарга гэж нэрлэдэг. Загвар нь нэг оролт, нэг гаралт, хэд хэдэн далд давхаргаас бүрдэнэ. Давхарга бүр нь мэдрэлийн эсүүд гэж нэрлэгддэг зангилаанаас бүрддэг бөгөөд тооцоолол хийгддэг.
Дараах диаграммд тойрог нь зангилааг, зангилааны босоо цуглуулга нь давхаргыг илэрхийлнэ. Энэ загварт гурван давхарга байдаг.
Нэг давхаргын зангилаанууд нь доорхи байдлаар дамжуулах шугамаар дараагийн давхаргад холбогддог.
Манай мэдээллийн багц нь шошготой өгөгдлөөс бүрдэнэ. Энэ нь өгөгдлийн нэгж бүрт тодорхой нэрийн утгыг өгсөн гэсэн үг.
Тиймээс амьтны ангиллын өгөгдлийн багцын хувьд бид муур, нохойн дүрсийг өгөгдөл болгон, шошгон дээрээ "муур", "нохой" гэсэн дүрстэй байх болно.
Манай загварын шошгыг ойлгохын тулд тоон утгууд руу хөрвүүлэх шаардлагатай тул амьтны шошго нь муурны хувьд '0', нохойны хувьд '1' болдог гэдгийг анхаарах нь чухал. Өгөгдөл болон шошго хоёулаа загвараар дамждаг.
Судалгаа
Өгөгдлийг загварт нэг нэгжээр нийлүүлдэг. Энэ өгөгдлийг хэсэг болгон хувааж, загварын зангилаа бүрээр дамжуулдаг. Зангилаанууд нь эдгээр хэсгүүдэд математикийн үйлдлүүдийг гүйцэтгэдэг.
Та энэ зааварчилгааны хувьд математикийн функцууд эсвэл тооцооллыг мэдэх шаардлагагүй боловч эдгээр загварууд хэрхэн ажилладаг талаар ерөнхий ойлголттой байх нь чухал юм. Нэг давхаргад хэд хэдэн тооцоо хийсний дараа өгөгдлийг дараагийн давхаргад дамжуулдаг гэх мэт.
Бидний загвар дууссаны дараа гаралтын давхарга дээрх өгөгдлийн шошгыг урьдчилан таамаглаж байна (жишээлбэл, амьтны ангиллын асуудалд бид муурны таамаглал "0"-ийг авдаг).
Дараа нь загвар нь энэ таамагласан утгыг бодит шошгоны утгатай харьцуулж эхэлдэг.
Хэрэв утгууд таарч байвал манай загвар дараагийн оролтыг авах боловч хэрэв утгууд өөр байвал загвар нь алдагдал гэж нэрлэгддэг хоёр утгын зөрүүг тооцоолж, дараагийн удаа тохирох шошго гаргахын тулд зангилааны тооцооллыг тохируулна.
Гүн сургалтын хүрээ
Кодоор мэдрэлийн сүлжээ байгуулахын тулд бид импортлох хэрэгтэй Гүнзгий сургалтын хүрээ Манай Нэгдсэн Хөгжлийн Орчноо (IDE) ашигладаг номын сан гэж нэрлэдэг.
Эдгээр хүрээ нь урьдчилан бичсэн функцүүдийн цуглуулга бөгөөд энэ заавар дээр бидэнд туслах болно. Бид загвараа бүтээхдээ Keras хүрээг ашиглах болно.
Keras бол гүн гүнзгий суралцах, хиймэл оюун ухааны нөөцийг ашигладаг Python номын сан юм Тензор урсгал NN-ийг энгийн дараалсан загвар хэлбэрээр хялбархан үүсгэх.
Керас нь бас ашиглаж болох өөрийн гэсэн загваруудтай ирдэг. Энэхүү зааварчилгааны хувьд бид Keras ашиглан өөрийн загвараа бүтээх болно.
Та энэхүү Гүнзгий сургалтын тогтолцооны талаар илүү ихийг мэдэх боломжтой Керас вэбсайт.
Мэдрэлийн сүлжээг бий болгох (заавар)
Python ашиглан мэдрэлийн сүлжээ байгуулах ажлыг үргэлжлүүлье.
Асуудлын мэдэгдэл
Мэдрэлийн сүлжээ нь хиймэл оюун ухаанд суурилсан асуудлыг шийдэх нэг төрөл юм. Энэхүү гарын авлагад бид бэлэн байгаа Пима Индианчуудын чихрийн шижингийн талаарх мэдээллийг үзэх болно энд.
ОУБ Machine Learning энэ мэдээллийн багцыг эмхэтгэсэн мөн Энэтхэгийн өвчтөнүүдийн эмнэлгийн бүртгэлийг агуулсан. Манай загвар нь өвчтөн 5 жилийн дотор чихрийн шижин өвчнөөр өвчилсөн эсэхийг урьдчилан таамаглах ёстой.
Өгөгдлийн багцыг ачаалж байна
Манай өгөгдлийн багц нь "diabetes.csv" нэртэй ганц CSV файл бөгөөд Microsoft Excel ашиглан хялбархан удирдах боломжтой.
Загвараа үүсгэхийн өмнө бид өгөгдлийн багцаа импортлох хэрэгтэй. Дараах кодыг ашиглан та үүнийг хийж болно.
pandas-г pd хэлбэрээр импортлох
өгөгдөл = pd.read_csv('diabetes.csv')
x = data.drop("Үр дүн")
y = өгөгдөл[“Үр дүн”]
Энд бид ашиглаж байна Пандас Манай CSV файлын өгөгдлийг удирдах боломжтой номын сан, read_csv() нь Pandas-ийн суулгасан функц бөгөөд бидэнд файлын утгыг 'өгөгдөл' гэж нэрлэгддэг хувьсагч болгон хадгалах боломжийг олгодог.
x хувьсагч нь үр дүнгийн (шошго) өгөгдөлгүйгээр бидний өгөгдлийн багцыг агуулна. Бид x-ийн шошгыг арилгадаг data.drop() функцээр үүнийг хийдэг бол y нь зөвхөн үр дүнгийн (шошго) өгөгдлийг агуулдаг.
Барилгын дараалсан загвар
Алхам 1: Номын санг импортлох
Нэгдүгээрт, бид TensorFlow болон Keras-ийг загварт шаардлагатай тодорхой параметрүүдийн хамт импортлох хэрэгтэй. Дараах код нь үүнийг хийх боломжийг бидэнд олгоно.
импортын тензор урсгалыг tf
tensorflow импортын керасуудаас
tensorflow.keras.models импортоос Sequential
tensorflow.keras.layers импортлох Идэвхжүүлэх, Нягт
tensorflow.keras.optimizers-аас Адам импортолдог
tensorflow.keras.metrics-аас categorical_crossentropy-г импортлох
Манай загварын хувьд бид нягт давхаргыг оруулж ирдэг. Эдгээр нь бүрэн холбогдсон давхаргууд юм; өөрөөр хэлбэл, давхарга дахь зангилаа бүр нь дараагийн давхаргын өөр зангилаатай бүрэн холбогдсон байна.
Мөн бид импортоор оруулж ирж байна Идэвхжүүлэх зангилаа руу илгээсэн өгөгдлийг масштаблахад шаардлагатай функц. Оновчлогчид алдагдлыг багасгах зорилгоор мөн импортоор оруулж ирсэн.
Адам бол бидний загварын шинэчлэлтийн зангилааны тооцооллыг илүү үр дүнтэй болгодог алдартай оновчлогч юм категорик_кроссентропи нь бидний ашиглах алдагдлын функцын төрөл (бодит болон таамагласан шошгоны утгуудын зөрүүг тооцдог).
Алхам 2: Манай загвар зохион бүтээх
Миний үүсгэж буй загвар нь нэг оролттой (16 нэгжтэй), нэг далд (32 нэгжтэй), нэг гаралттай (2 нэгжтэй) давхаргатай. Эдгээр тоо нь тогтмол биш бөгөөд өгөгдсөн асуудлаас бүрэн хамаарна.
Зөв тооны нэгж, давхаргыг тохируулах нь дадлага хийснээр илүү цагийг сайжруулж болох процесс юм. Идэвхжүүлэлт нь зангилаагаар дамжуулахаас өмнө бидний өгөгдөл дээр хийх масштабын төрөлтэй тохирч байна.
Relu болон Softmax нь энэ ажлыг идэвхжүүлэх алдартай функцууд юм.
загвар = Дараалсан([
Нягт(нэгж = 16, оролтын_хэлбэр = (1,), идэвхжүүлэх = 'relu'),
Нягт(нэгж = 32, идэвхжүүлэлт = 'relu'),
Нягт(нэгж = 2, идэвхжүүлэх = 'softmax')
])
Загварын хураангуй нь дараах байдалтай байх ёстой.
Загвар өмсөгчийг сургах
Манай загварыг хоёр үе шаттайгаар сургах бөгөөд эхнийх нь загварыг эмхэтгэх (загварыг нэгтгэх), дараагийнх нь өгөгдсөн өгөгдлийн багцад загварыг тохируулах явдал юм.
Үүнийг model.compile() функц, дараа нь model.fit() функц ашиглан хийж болно.
model.compile(оновчлогч = Адам(суралцах_хувь = 0.0001), алдагдал = 'хоёртын_кроссентропи', хэмжүүрүүд = ['нарийвчлал'])
model.fit(x, y, epochs = 30, багцын_хэмжээ = 10)
"Нарийвчлал" хэмжигдэхүүнийг зааж өгөх нь сургалтын явцад загварынхаа нарийвчлалыг ажиглах боломжийг олгодог.
Манай шошгууд нь 1 ба 0-ийн хэлбэртэй байдаг тул бид бодит болон таамагласан шошгоны ялгааг тооцоолохдоо хоёртын алдагдлын функцийг ашиглах болно.
Өгөгдлийн багцыг мөн 10 (багцын_хэмжээ) багц болгон хувааж байгаа бөгөөд загвараар 30 удаа (эрин үе) дамжих болно. Өгөгдсөн өгөгдлийн багцын хувьд x нь өгөгдөл, y нь өгөгдөлд тохирох шошго байх болно.
Таамаглал ашиглан загварыг турших
Загвараа үнэлэхийн тулд бид таамаглах () функцийг ашиглан туршилтын өгөгдөл дээр таамаглал гаргадаг.
таамаглал = model.predict(x)
Энэ л юм.
Та одоо энэ талаар сайн ойлголттой байх ёстой Гүн сурах програм, Мэдрэлийн сүлжээ, тэдгээр нь ерөнхийдөө хэрхэн ажилладаг, Python кодоор загварыг хэрхэн бүтээх, сургах, турших.
Энэхүү заавар нь танд өөрийн Deep Learning загваруудыг бий болгож, ашиглах эхлэлийг өгнө гэж найдаж байна.
Нийтлэл хэрэгтэй байсан бол сэтгэгдэл дээр бидэнд мэдэгдээрэй.
хариу үлдээх