Czy sztuczna inteligencja zastąpi programistów?

Sztuczna inteligencja to gorący temat, bardzo łatwo zrozumieć dlaczego. W miarę jak maszyny stają się coraz bardziej zaawansowane, możemy prosić je o robienie rzeczy, które ludzie robili przez tysiące lat, takich jak rozpoznawanie wzorów czy przetwarzanie języka naturalnego. Możliwości są nieograniczone! Jednak AI jest wciąż w powijakach i pełna niepewności, więc zbadajmy, jak daleko jesteśmy w tej technologii oraz co to oznacza dla programistów.

Czy AI zastąpi programistów?

AI nigdy nie zastąpi ludzkich programistów. Nawet jeśli AI może wykonywać niektóre zadania lepiej niż ludzie, nie będzie w stanie zrobić wszystkiego, co my robimy. Na przykład, AI nie potrafi myśleć jak człowiek i pisać kodu jak człowiek. Nie potrafi również samodzielnie usuwać błędów (choć to się prawdopodobnie zmieni, gdy samouczące się sieci neuronowe staną się bardziej powszechne).

Wciąż jesteśmy daleko od możliwości stworzenia programów AI, które będą się same uczyć i same pisać kod, ludzie więc będą potrzebni w dziedzinie programowania w najbliższej przyszłości.

Czym jest uczenie maszynowe?

Uczenie maszynowe to forma sztucznej inteligencji, która pozwala komputerom uczyć się bez wyraźnego programowania. Opiera się ono na założeniu, że algorytmy mogą być wykorzystywane do tworzenia modeli predykcyjnych i podejmowania decyzji na podstawie danych, przy czym komputer sam się dostosowuje.

Uczenie maszynowe, które czerpie z takich dziedzin jak statystyka i informatyka, istnieje od lat 50-tych, ale w ostatnich latach pojawiło się jako potężne narzędzie dla dużych firm, które szukają sposobów na opanowanie dużej ilości danych. Uczenie maszynowe jest często wykorzystywane przez firmy w takich obszarach jak cyberbezpieczeństwo i reklama – gdzie istnieje obfitość dostępnych informacji – ale zaczyna również wkradać się do innych branż, w tym opieki zdrowotnej (IBM Watson), finansów (BlackRock), handlu detalicznego (Walmart), transportu (Uber), rolnictwa (Cargill), a nawet eksploracji kosmosu (SpaceX).

Natura uczenia maszynowego

Uczenie maszynowe jest podzbiorem sztucznej inteligencji. Jest to również podzbiór nauki o danych, statystyki, matematyki stosowanej i innych dyscyplin. Uczenie maszynowe koncentruje się na opracowywaniu algorytmów, które automatycznie poprawiają się w miarę przetwarzania informacji z poprzednich doświadczeń. Celem jest zbudowanie modeli, które mogą dokonywać trafnych przewidywań lub decyzji bez konieczności ręcznego programowania, w celu określenia każdego kroku, który model powinien wykonać.

Samo uczenie maszynowe ma wiele poddziedzin:

  • Uczenie nadzorowane – ta forma uczenia maszynowego wykorzystuje dane treningowe, które składają się z przykładowych wejść i wyjść, gdzie znasz poprawne wyjście dla każdego wejścia (np. w rozpoznawaniu obrazów). Następnie używasz tych danych do trenowania modelu, aby mógł on dokonywać przewidywań na podstawie nowych danych wejściowych przedstawionych mu później.
  • Uczenie bez nadzoru – ta forma nie wykorzystuje oznakowanych przykładów szkoleniowych; zamiast tego jej celem jest po prostu odkrycie wzorców w nieoznakowanych zestawach danych (np. w analizie koszyka rynkowego)

Uczenie maszynowe pozwoli nam robić ciekawsze rzeczy

Uczenie maszynowe uwolni nas od nudnego pisania kodu, ale nie odbierze potrzeby głębokiego myślenia o tym, jak rozwiązywać problemy.

Uczenie maszynowe jest narzędziem, które można wykorzystać do automatyzacji zadań, ale nie jest celem samym w sobie. Na przykład, jeśli masz system uczenia maszynowego, który uczy się rozpoznawać koty na zdjęciach i filmach, nadal potrzebujesz kogoś, kto rozumie, dlaczego to robi i co chce, aby jego system uczenia maszynowego zrobił dalej.

Systemy uczenia maszynowego są dobre w pewnych sprawach – ale nie zastąpią całkowicie programistów, ponieważ ludzie podejmują lepsze decyzje przy projektowaniu nowych systemów lub dostosowywaniu istniejących, niż komputery. To jest coś, co wiemy od co najmniej lat 50-tych: Alan Turing napisał artykuł „Computing Machinery and Intelligence”, w którym zaproponował to, co stało się znane jako Test Turinga (komputer przechodzi ten test, jeśli jego odpowiedzi są nieodróżnialne od odpowiedzi człowieka).

AI jest jeszcze daleka od dorównania człowiekowi w wielu kwestiach

AI jest dobra w robieniu rzeczy, w których ludzie są źli. Na przykład, jeśli chcesz posortować tysiące CV i znaleźć najlepszych kandydatów do pracy, AI może to zrobić w ciągu kilku sekund, prawie bez błędów. Jeśli masz do przeanalizowania obraz, taki jak zdjęcie rentgenowskie lub skan MRI, AI może pomóc lekarzom uzyskać wyraźniejszy obraz i postawić lepszą diagnozę szybciej, niż mógłby to zrobić człowiek.

AI nie jest jednak tak świetna w kreatywności i innowacyjności – dwóch rzeczach, które są niezbędne dla programistów, aby mogli realizować swoje projekty!

Sztuczna inteligencja nie jest magicznym pociskiem. Jest to narzędzie i może być wykorzystane dobrze lub źle. Rozwój AI jest wciąż w powijakach, więc nie mamy pewności, co przyniesie przyszłość.

Uczenie maszynowe może pomóc programistom szybciej pisać lepszy kod

Uczenie maszynowe może pomóc programistom pisać lepszy kod szybciej na dwa sposoby:

  • Uczenie maszynowe może wykonywać nudne części kodowania, takie jak pisanie bardziej wydajnego kodu lub pomoc w naprawianiu błędów.
  • Uczenie maszynowe może napisać lepsze algorytmy do rozwiązywania problemów, które programiści już rozwiązali ręcznie, dzięki czemu nie zajmie tak dużo czasu programiście, aby dowiedzieć się, jak osiągnąć to samo rozwiązanie ponownie później.

Etyka

Na koniec pozostaje kwestia etyki i naszej zdolności do radzenia sobie z tym, co stworzyliśmy. AI ma ogromną moc, może być wykorzystana do wielkiego dobra, ale także do wielkiej szkody. Musimy uważać na to, jak używamy AI i rozważać jej konsekwencje, ponieważ nie chodzi tylko o ułatwianie sobie życia, ale także o zapobieganie wyrządzaniu krzywdy innym przez nasze twory.

Podsumowanie

W kwestii programowania AI nie jest wrogiem, lecz przyjacielem. Uwolni nas od trudów wielu zadań i pozwoli skupić się na kreatywnych aspektach naszej pracy. W ten sposób będziemy mogli tworzyć lepsze produkty i usługi dla ludzi, o co ostatecznie i tak w tym wszystkim chodzi!