آیا لازم است سازه‌های اطلاعاتی را برای یادگیری ماشین بشناسید؟

به عنوان یک زیرمجموعه از هوش مصنوعی، توانایی کامپیوترها به عقل، یادگیری ماشین به معنی الگوریتم هایی است که از طریق داده‌های آموزشی به جای برنامه‌نویسی یاد می‌گیرند. به طور خاص، هدف یادگیری ماشین، افزودن ارزش کسب‌وکار از طریق پیش‌بینی‌ها و قطعنامه ها با دادن کامپیوتر به توانایی یادگیری استفاده از داده‌ها است. از آنجا کهشما باید ساختارهای داده برای یادگیری ماشین را بدانید چون آن‌ها بلوک‌های سازنده برنامه‌نویسی کامپیوتر هستند. این برای توسعه درک عمیق و کسب تخصص یادگیری ماشین لازم است. درک ساختارهای داده نیز به شما یک مزیت را نسبت به دیگر متخصصان یادگیری ماشین می‌دهد.مروری بر یادگیری ماشین و ساختارهای دادههوش مصنوعی یک مفهوم است که در آن کامپیوتر یک وظیفه را حل می‌کند ، به عنوان مثال ، با استفاده از یک دستیار مجازی یا یک ماشین خودکار به جای اینکه یک انسان این وظایف را انجام دهد. یادگیری ماشین مجموعه‌ای از هوش مصنوعی است . این روش برای حل مشکلات انسانی با استفاده از الگوریتم‌ها و ساختار داده از طریق روش‌های آماری برای یادگیری به جای برنامه‌ریزی شدن ، اعمال می‌شود .داده‌ها ، واحدهای اطلاعاتی جمع‌آوری ، تحلیل و گزارش می‌شوند . و ساختارهای داده نمایش فیزیکی آن داده‌ها ، سازمان داده و اساس نوع داده‌های انتزاعی هستند ( ADT ) .به عنوان یک نظریه ، ADT به رفتار احتمالی داده‌ها نگاه می‌کند و برای طراحی ساختارها و الگوریتم‌های داده‌ها مورد استفاده قرار می‌گیرد . در حالی که ساختار داده‌ها مجموعه واقعی از مقادیر است ، با روابط محکم با یکدیگر و تعریف می‌شود که با آن عملیات‌ها می‌توانند به آن داده‌ها اجرا شوند .ارتباط بین ساختارهای داده و یادگیری ماشیناگر از یادگیری ماشین برای حل یک مشکل استفاده می‌کنید , باید ارزیابی کنید که کدام مدل سریع‌ترین و کم‌ترین مقدار فضا و منابع را مصرف می‌کند اما به دقت آن را حل می‌کند . اگر یک مدل با استفاده از الگوریتم‌ها ساخته شده‌باشد , مقایسه و مقایسه دو الگوریتم بین دو الگوریتم برای تعیین بهترین راه‌حل برای مهارت یادگیری ماشین حیاتی است . بنابراین , تسلط بر ساختارها و الگوریتم‌ها یک بخش ضروری از کار است .خصوصا , زمانی که ساختار و الگوریتم داده‌ها را می‌دانید , می‌توانید به پرسش‌های زیر پاسخ دهید :· چه قدر حافظه لازم است تا اجرا شود ؟· چقدر طول می‌کشد تا اجرا شود ؟· در مورد کسب‌وکار ، کدام الگوریتم بهترین عملکرد را ارائه می‌کند ؟ساختارهای داده چیست ؟به عنوان یک مرور کلی ، ساختارهای داده گروه‌بندی داده‌ها هستند ، الگوریتم‌ها از داده‌ها به عنوان ورودی استفاده می‌کنند و برای انجام یک کار ، گامی را در جهت گام به مرحله فراهم می‌کنند . زبان‌های برنامه‌نویسی توضیح می‌دهند که چطور می‌خواهید دستور کار انجام شود تا کامپیوتر متوجه شود .اگر چه ساختارهای داده ، توالی داده‌ها را سفارش می‌دهند و برای همه زبان‌های برنامه‌نویسی کامپیوتر یک‌سان هستند ، آن‌ها به صورت متفاوتی اجرا می‌شوند . از ابتدا یک نوع داده به کامپایلر می‌گوید که چگونه برنامه‌نویس از داده‌ها استفاده می‌کند مثلا ً یک کاراکتر یا یک عدد صحیح . به طور خاص ، نوع داده یک ویژگی است که توسط زبان‌های برنامه‌نویسی کامپیوتر برای تشخیص نحوه استفاده برنامه‌نویس از داده‌ها استفاده می‌شود .انواع داده اولیه :· Boolean values· Characters· Fixed point numbers· Floating point numbers· Integersانواع داده مرکب· Arrays· Records· Unionsانواع داده چکیده :· Lists· Sets· Tuplesساخته‌شده با انواع داده ، تعداد زیادی از ساختارهای داده مختلف موجود هستند . به طور خاص ، ساختارهای داده ، سازمان ، مدیریت و ذخیره داده‌ها هستند ؛ با این حال ، ایجاد و دستکاری این ساختار داده‌ها شامل نوشتن مجموعه‌ای از روش‌ها می‌شوند . ساختارهای داده‌های مشترک با توضیحات کوتاه به صورت زیر طبقه‌بندی می‌شوند :ساختارهای داده‌های خطی : Arrays عناصر در یک نظم خاص و معمولا ً از همان نوع هستند , مانند جدول جستجو .لیستی از عناصر داده هر نوع ، که گره‌ها نامیده می‌شوند ، هستند ، که دارای یک مقدار و نقطه به گره بعدی در این فهرست هستند . یک لیست پیوندی می‌تواند جزئیات یک لیست را تغییر داده و متغیر دیگر باشد .tuplesنمی‌تواند عناصر یک لیست را تغییر دهد و تغییر ناپذیر باشد .این مجموعه‌ها به صورت دنباله‌ای از اقلام یا شناسه‌های منحصر به فرد ساخته می‌شوند .ساختارهای داده درخت : درخت دودویی یک درخت با دو فرزند است .ساختار مبتنی بر Hash : جدول Hash را در یک ردیف توزیع می‌کند .نمودار داده‌های نمودار : نمودارها به سمت مفاهیم جهت گیری یا غیر مستقیم با گره‌ها و زوج‌های سفارشی یا نامنظم قرار می‌گیرند .یک برنامه‌نویس کامپیوتر باید از برخی از الگوریتم‌های پایه و زمانی که از آن‌ها استفاده می‌کند آگاه باشد . ویژگی‌های یک الگوریتم این است که ورودی و خروجی مشخص شده‌اند ; مشخص , موثر و محدود است . برای مثال :مرتب‌سازی الگوریتم به شما این امکان را می‌دهد که داده‌ها را در یک ترتیب خاص مرتب کنید : مرتب‌سازی صعودی , مرتب‌سازی , و quicksort.برای مثال ، الگوریتم جستجوی ، در جستجوی یک فهرست که در آن تطابق رشته رخ می‌دهد ، جستجو می‌کند . یک مثال یک ربات در هوش مصنوعی است .جستجوی Hash ترکیبی از مرتب‌سازی و جستجو است که در آن داده‌ها با استفاده از یک کلید ، همانطور که در یک جدول درهم ساز نگه داری می‌شوند، به دنبال آن هستند .برنامه‌نویسی پویا یک مساله پیچیده را با شکستن آن به موضوعات عنصری حل می‌کند و هر یک را به طور جداگانه حل می‌کند و از آن راه‌حل‌ها برای حل مساله بزرگ‌تر استفاده می‌کند .محاسبه برابر با مربع یک محاسبه ریاضی است که برای محاسبات بیشتر مورد استفاده قرار می‌گیرد .الگوریتم آزمون primality مشخص می‌کند که آیا عدد اول است یا نه .رشته‌ای که با مساله تطبیق الگو و انطباق رشته مطابقت دارد، به عنوان مثال الگوریتم Knuth - موریس - Pratt.ریاضیات و آمارهمراه با ساختارها و الگوریتم‌های داده‌ها , شما باید ریاضیات , آمار و احتمال را برای درک داده‌ها , شناسایی الگوها , و ایجاد بینش‌هایی برای اهداف تجاری مرتبط با نتایج داده‌ها , یاد بگیرید . از آمار برای ایجاد مدل‌های داده‌های خردمندانه استفاده می‌شود و برای حل مشکلات کسب‌وکار ضروری است .برای درک کامل مسایل تجاری ، مدلی برای پیش‌بینی اینکه چه اتفاقی ممکن است رخ دهد گرفته شد . اگر به احتمال زیاد ، دانشمند داده‌های یادگیری ماشین از خط لوله داده استفاده خواهد کرد ، الگوریتمی برای آموزش داده ، و ایجاد یک مدل پیش‌بینی برای استنتاج یک نتیجه ، با استفاده از انواع مختلف یادگیری ماشین همانطور که در اینجا به طور گسترده تعریف شده‌است . این نوع را می‌توان با هر روشی که به حرفه‌ای یادگیری ماشین معنا می‌دهد ، ترکیب و تطبیق داد .این استعاره , یادگیری از معلم , یا یادگیری نظارت شده زمانی اتفاق می‌افتد که یک الگوریتم برای پیش‌بینی نتایج کسب‌وکار مبتنی بر ورودی داده‌های آموزشی اجرا می‌شود .استعاره دیگر ، یادگیری بدون هیچ بازخورد معلم ، یا یادگیری بدون نظارت ، وقتی اتفاق می‌افتد که پیامد براساس احتمالات براساس الگوهای داده‌ای و associations مشخص شود .با یادگیری تقویتی ، مشاهدات انجام می‌شوند و اعمال انجام می‌شوند . همان طور که پاداش‌ها یا مجازات‌ها مشخص می‌شوند ، مسیر صحیح تعیین می‌شود .یادگیری دسته‌ای برون‌خط است ، زیرا سیستم نمی‌تواند به صورت تدریجی از یک جریان در حال حرکت داده‌ها یاد بگیرد .یادگیری ماشین چیست ؟هوش مصنوعی یک مفهوم کلی است که در آن سیستم‌های کامپیوتری وظایف معمولا ً توسط انسان‌ها انجام می‌شوند مانند تشخیص چهره . به عنوان یک زیرمجموعه از هوش مصنوعی , یادگیری ماشین بینشی از مجموعه داده‌های بزرگ جمع‌آوری می‌کند و به طور خودکار یاد می‌گیرد تا ارزش کسب‌وکار را پیش‌بینی کند . به طور خاص , الگوریتم‌ها با استفاده از ساختارهای داده ( مانند آرایه ) برای اجرا با استفاده از داده‌های آموزشی ساخته می‌شوند و متعاقبا ً از بازخورد یاد می‌گیرند .صلاحیت پایهمفاهیم ریاضی , برای مثال , آمار , احتمال , و جبر خطی براساس الگوریتم ‌های یادگیری ماشین هستند , که به همراه تکنیک‌ها و رویکردها برای توسعه یک کار خاص کنار هم چیده شده‌اند . تشخیص چهره یا پیش‌بینی شرایط آب و هوا مشکلات حل‌شده با ترکیب الگوریتم ‌های کاربردی است . اما برای ساخت الگوریتم ها , ساختارهای داده مورد نیاز هستند , و برای اجرای الگوریتم ها, زبان‌های برنامه‌نویسی کامپیوتر مانند پایتون به کار می‌روند .مهارت و درک عمیقاگر ساختارها و الگوریتم‌های داده‌ها خیلی بلند و با کیفیت پایین باشند , به عنوان یک طراحی بد در نظر گرفته می‌شود که باعث کاهش توان خروجی و کاهش منابع محاسباتی می‌شود . برای آزمایش , ممکن است مرتبط نباشد , اما ناکارآمدی طراحی قابل‌استفاده نیست یا برای تولید پذیرفته نمی‌شود .بنابراین ، کلید این است که درک عمیقی از بلوک‌های سازنده داشته باشیم و روابط ساختارهای داده‌ای و بهینه‌سازی راه‌حل‌ها را درک کنیم . پایه و اساس دانستن چگونگی جمع‌آوری ، تحلیل و ذخیره داده‌ها و پشتیبانی زمینه‌ای برای علم اطلاعات ، هوش مصنوعی ، و به عنوان زیر مجموعه مربوطه ، یادگیری ماشین است .الگوریتم‌های پیشرفته در یادگیری ماشین نیازمند غواصی عمیق در ساختاری هستند که داده‌ها را نگه می‌دارد . به عنوان مثال ، اگر آرایه به طور کامل درک شود ، می‌توانید با NumPy ، یک کتابخانه برای زبان برنامه‌نویسی کامپیوتر ، و پشتیبانی از آرایه و دیگر توابع ریاضی کار کنید .تنها با درک ساختار داده‌ها و الگوریتم‌ها ، مشخص خواهید کرد که چگونه NumPy می‌تواند محاسبات آرایه را بهتر انجام دهد و آنچه قابل‌اجرا بوده و متناسب با شرایط کاری است که شما در آن کار می‌کنید . در غیر این صورت ، این یک تمرین در دقت و تکرار همان کد هر کجا که کار می‌کند ، به جای تفکر و تصمیم‌گیری درباره اینکه الگوریتم‌ها چگونه باید اجرا شوند ، می‌شود .برای تعریف بیشتر تخصص خود ، به عنوان یک زیرمجموعه از یادگیری ماشین ، مفهوم یادگیری عمیق یک خروجی از اجرای الگوریتم هاست . مجموعه عظیمی از داده‌ها با اجرای الگوریتم ‌ها در فضای شبکه عصبی آموزش‌دیده اند . در یادگیری عمیق ، شبکه‌های عصبی برای شبیه‌سازی عملکرد مغز برای دستیابی به دقت بهتر با پیش‌بینی‌ها و resolutions برای مشکلات کسب‌وکار توسعه داده می‌شوند .نتیجه‌گیریهمانند هر شغلی , یک پایه و اساس محکم برای ادامه رشد , به خصوص در زمینه علوم داده‌ها , به ویژه با تازگی محیط کار یادگیری ماشین جدید بسازید. به طور خاص , با این تخصص , مهم است که داده‌ها , ریاضیات , و برنامه‌نویسی کامپیوتر را دوست داشته باشیم, زیرا این مفاهیم پیچیده هستند .درک ساختار داده‌ها و قرار دادن بهترین الگوریتم در کد به شما توانایی پیش‌بینی صحیح و پیش‌بینی راه‌حل‌ها را به بهترین روش ، که هدف یادگیری ماشین است ، می‌دهد . علاوه بر این، داشتن پایه قوی در ساختار داده‌ها و همه چیزهای مربوط به داده‌ها به شما کمک می‌کند سریع‌تر یاد بگیرید و نسخه بهتری از خود را در فضای یادگیری ماشین پیدا کنید .واچه تروسیاندانشگاه آزاد - تهران مرکزپایگاه دادهاستاد: دکتر مریم حاجی اسمعیلی.دکترای علوم کامپیوتر از دانشگاه کینگستون لندنمنابع1. Data structure. (n.d.). Encyclopedia Britannica. https://www.britannica.com/technology/data-structure2. Data types. (n.d.). School of Computing. https://www.cs.utah.edu/~germain/PPS/Topics/data_types.html3. Definition of algorithm. (n.d.). Dictionary by Merriam-Webster: America’s most-trusted online dictionary. https://www.merriam-webster.com/dictionary/algorithm4. Explained: Neural networks. (n.d.). MIT News | Massachusetts Institute of Technology. https://news.mit.edu/2017/explained-neural-networks-deep-learning-04145. Knuth-Morris-Pratt algorithm. (n.d.). Donald Bren School of Information and Computer Sciences @ University of California, Irvine. https://www.ics.uci.edu/~eppstein/161/960227.html6. Python (programming language). (2001, October 29). Wikipedia, the free encyclopedia. Retrieved November 20, 2020, from https://en.wikipedia.org/wiki/Python_(programming_language)7. Scikit-learn. (n.d.). scikit-learn: machine learning in Python — scikit-learn 0.16.1 documentation. Retrieved November 20, 2