منبع:
منبع:
سلام
تصویر زیر بهترین تصویری هست که تا حالا از معماری یک شبکه یادگیری عمیق دیدم.
این تصویر از کتاب Deep Learning with Python هست. همانطور که در تصویر نشان داده شده، loss function یا objective function خروجی مورد انتظار را با خروجی تولید شده بوسیله شبکه مقایسه می کنه تا مشخص کنه که الگوریتم چقدر خوب عمل کرده.
تابع Optimizer هم عملیات تغییر و بهنگام سازی وزن ها را انجام میده.
با سلام
شدیدا توصیه می کنم این کتاب را مطالعه بفرمایید.
این کتاب توسط یکی از دانشمندان داده شرکت گوگل(آقای François Chollet) نوشته شده. بسیار Practical هست. نویسنده این کتاب در پیاده سازی پروژه Tensorflow و Keras هم همکاری داشته.
مفاهیم پایه ای یادگیری عمیق را خیلی خوب و ساده با تصاویر گویا بیان کرده.
سلام.
امروز برای شروع می خوام یه مطلبی در مورد بردارهای کلمه بنویسم که البته خیلی ابتدایی هست ولی برای شروع خوبه.
بردار های کلمه (Word vectors) یا تعبیه لغات (Word embedding)
بردارهای کلمه یا تعبیه لغات (word embedding) روشی برای تبدیل کلمات به اعداد یا اصطلاحا روشی برای ارائه کلمات هستند. بعد از اینکه کلمات به اعداد تبدیل شدند اونموقع میتونیم این اعداد را به عنوان ورودی الگوریتم های یادگیری ماشین بکار ببریم.
به سادگی میشه گفت بردارهای کلمه، بردارهایی (همون آرایه هایی که از قدیم می شناختیم)از اعداد هستند که معنی یک کلمه را در بر می گیرند.
روش های سنتی NLP مانند One-hot encoding و bag of words در برگیرنده اطلاعاتی مانند معنی و محتوای کلمات نبودند. یعنی ارتباطات بین کلمات مانند نزدیکی محتوایی کلمات در روش های سنتی نادیده گرفته می شدند. به عنوان مثال، روش one-hot encoding نمی تواند ارتباط ساده بین دو کلمه "سگ" و "گربه" را به این صورت که هر دو از حیوانات هستند و در context حیوانات خانگی هستند را بیان نماید. روش های ستنی برای کارهای ساده NLP مانند تشخیص ایمیل های spam مناسب هستند ولی برای کارهای پیچیده تر مانند ترجمه و Speech Recognition کارایی لازم را ندارند. در واقع روش های سنتی مانند one-hot encoding ارتباطات ساختاری(Syntactic) و معنایی(Semantic) میان کلمات را نادیده می گیرند.
در مقایسه با روش های سنتی، بردارهای کلمه، کلمات را به صورت بردارهای چند بعدی از اعداد اعشاری نمایش می دهند، به صورتی که کلمات با معنای مشابه به نقاط نزدیکی در فضای هندسی نگاشته می شوند. به زبان ساده تر یک بردار کلمه، سطری از اعداد حقیقی است که هر نقطه آن یک بعد (Dimension) از معنی کلمه را در بر می گیرد و کلمات با معنای مشابه، بردارهای مشابهی دارند. این با آن معنی است که کلماتی مانند "چرخ" و "موتور" بردارهای مشابهی با کلمه "ماشین" دارند، در حالیکه کلمه "موز" اختلاف زیادی با این کلمات دارد. علاوه بر این کلماتی که در محتوای مشابهی استفاده می شوند، به فضای برداری نزدیکی نگاشته می شوند. زیبایی ارائه کلمات با استفاده از بردارها، امکان استفاده از عملگرهای ریاضی بر روی بردار هاست. برای مثال ما می توانیم بردار ها را به هم اضافه و یا از هم کم کنیم. یک مثال معروف در این زمینه مانند زیر است:
King – man + woman = queen
به عبارت دیگر در این مثال یک معنی از بردار King کم می شود (معنی مرد بودن) و یک معنی به بردار king اضافه می شود (معنی زن بودن).
اعداد در بردار کلمه، وزن توزیع شده کلمه در میان dimension ها هستند. به عبارت ساده تر، هر dimension یک معنی را ارائه می نماید و وزن عددی داده شده به dimension در برگیرنده میزان نزدیکی کلمه با آن dimension است. بنابراین معنی یک کلمه در میان ابعاد بردار قرار می گیرد.
#باران_سیل_سپور
#بردارهای_کلمه
#بردارهای_لغت
#wordvectors
#word_vectors
#word_embedding
#NLP
#پردازش_زبان_طبیعی
#تعبیه لغات
سلام
الان چند روزه که دارم یه دوره آموزشی پایتون برای پردازش زبان طبیعی را مطالعه می کنم.
این دوره از لیندا هست و لازم نیست بگم که چقدر خوبه.
البته بگم هدف این دوره آموزش خیلی دقیق و 0 تا 100 پردازش زبان نیست.
بلکه در این دوره سعی شده تا مقدمه ای هم از یادگیری ماشین گفته بشه.
من خیلی از این دوره استفاده کردم. مدرس دوره آقای Derek Jodamski هم بیان خیلی خوبی داره.
این دوره را میتونید از سایت زیر دانلود کنید.
Download NLP with Python for Machine Learning Essential Training